iOS
文章平均质量分 79
请叫我卷毛大人
...
展开
-
Xcode11后,新创建的项目无法进入Main.storyboard问题
Xcode12新建项无法使用Main.storyboardXcode12之后,新创建的项目会自动创建SceneDelegate文件如果删除这个文件后,项目将无法进入到Main.storyboard中。解决方法:在info.plist文件中搜索SceneDelegate,会搜索到Application Scene Manifest下存在这个文件名,直接删除即可,正常进入Main.storyboard中。...原创 2021-03-02 14:30:08 · 1601 阅读 · 1 评论 -
iOS第三方库SDWebImage解读学习。
前言SDWebImage是常用的第三方库之一,主要用在网络图片的加载,以及缓存上面。其应用方法简单啊,只需一句代码调用,即可实现对网络图片的加载+缓存操作,本篇内容主要是对其内部的代码逻辑进行解读以及学习。1.SDWebImage加载网络图片时的工作过程在网络获取图片前,取消并移除当前对象的图片下载线程。 动态关联该图片url(用于图片存缓存的key),一般默认选项有占位...原创 2021-03-02 14:16:46 · 419 阅读 · 0 评论 -
iOS中使用dispatch_sync崩溃问题。总结
崩溃发现是这样的,在维护项目过程中,有个地图的功能,在地图上会添加很多的标注物,但是我在测试过程中发现只要快速操作,比如连续点击放大地图,就会出现崩溃现象。崩溃点在dispatch_sync上面,使用同步县城dispatch_sync(dispatch_get_main_queue(), ^{ @try { [self.mapView remove...原创 2018-10-11 11:21:26 · 2062 阅读 · 0 评论 -
一篇关于JSPatch, 线上直接改BUG的利器,OC语法转换时遇到的坑
开发中往往会遇到应用上线但是还是存在bug的情况,这个时候我们需要及时更新错误的方法,来进行热修复,然后在苹果将热更新禁掉后,大多时候都需要重新审核来发布新的版本更新,然后JSPatch,可以通过腾讯Bugly平台来进行线上修复方法的骚操作。对于我这种竟然出现小bug的人来说就是神器。先上资源链接。【链接】腾讯Bugly-一种愉悦的开发方式_平台内有应用升级的功能支持,里面有对应的JSpa...原创 2018-07-22 15:36:50 · 765 阅读 · 0 评论 -
AFNetworking实现原理,转自简书,leo_guo。
NSURLSession:NSURLSession由三个基本模块构成:NSURLSessionNSURLSessionConfiguationNSURLSessionTaskNSURLSession相对于平时通信中的会话,但本身却不会进行网络数据传输,它会穿件多个NSURLSessionTask去执行每次的网络请求NSURLSession的行为取决于三个方面。包括NSURLSession的类型、N...转载 2018-06-17 14:29:16 · 271 阅读 · 0 评论 -
道格拉斯抽稀算法,应用于地图轨迹纠偏。OC语言篇
道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法、迭代适应点算法、分裂与合并算法)是将曲线近似表示为一系列点,并减少点的数量的一种算法。该算法的原始类型分别由乌尔斯·拉默(Urs Ramer)于1972年以及大卫·道格拉斯(David Douglas)和托马斯·普克(Thomas Peucker)于1973年提出,并在之后的数十年中由其他学者予...原创 2018-06-14 20:23:22 · 2997 阅读 · 0 评论 -
总结一些代码规范。
本文主要讲解一下自己在开发过程中对一些常用的全局变量的定义。之前自己做过一些电商类的应用,电商类的应用功能比较多,包含了各种功能,包括友盟统计,地图,分享,支付等等功能,这些功能都需要对应的私钥去关联,那么这些私钥如何储存呢,这里我使用的是全局变量饮用plist文件的方法。这些有经验的都有自己的整理方法,这里我就记录一下自己所用的方法了。首先是创建一个数据自己应用XXXconfig.h的文件,用来...原创 2018-06-01 00:24:59 · 610 阅读 · 0 评论 -
iOS中 atomic、nonatomic、assign、copy、retain、readonly的定义与区别
atomic、nonatomic:atomic提供多线程安全操作。其原理原创 2018-05-30 22:43:32 · 192 阅读 · 0 评论 -
【iOS测试系列】instruments工具的使用(二)- 通过Time Profiler
1.很多公司都恨不得把app压法周期压缩到最低,这就导致了开发中隐藏了很多问题,有点经验的工程师草率的优化下,更糟的情况那些没有经验的工程师甚至不会对app进行任何优化.2.某种程度上来说,你开发过程中是可以忽略性能优化的. 十年前,移动设备的硬件资源是非常有限的.甚至连浮点数都是被禁止的.因为浮点数能导致代码变大计算的速度变慢.3.科技发展如此迅速的今天,硬件很大程度上可以弥补软件的短板.现在的...转载 2018-05-24 20:40:58 · 1561 阅读 · 0 评论 -
【iOS测试系列】instruments工具的使用(一)- 通过leaks分析内存泄露
性能对于一款app来说至关重要,而程序的内存占用情况就是一项很重要的性能指标。虽然iOS 5.0版本之后加入了ARC机制,但由于相互引用关系比较复杂时,内存泄露还是可能存在。在本文中小编将给大家介绍一下在非ARC的情况下,如何使用Instruments - leaks工具来查找程序中的内存泄露。 运行Instruments - leaks工具打开Xcode自带的Instruments: 或者:...转载 2018-05-24 20:39:47 · 343 阅读 · 0 评论 -
iOS中block的详解weakSelf、strongSelf,以及block循环引用的避免。
1我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码:__weak typeof(self) weakSelf = self;[self doSomeBlockJob:^{ __strong typeof(weakSelf) strongSelf = weakSelf; if (strongSel...转载 2018-05-24 08:53:01 · 647 阅读 · 0 评论 -
Block常见陷阱总结。
1、引发内存泄露 假设一个类有两个属性:block和name;//// PHBlockTest.h// BlockTestTest//// Created by 項普華 on 2017/2/9.// 邮箱: xiangpuhua@126.com// 电话: +86 13316987488// 主页: https://github.com/xphaijj// Copyr...原创 2018-05-23 21:10:09 · 223 阅读 · 0 评论 -
iOS几种常用线程锁学习与总结。
开始前,先创建3个线程执行的任务。- (void)method1 { NSLog(@"%@", @"线程1");}- (void)method2 { NSLog(@"%@", @"线程2");}- (void)method3 { NSLog(@"%@", @"线程3");}1.使用NSLock实现的锁NSLock是Cocoa提供给我们最基本的锁对象,这也是我们经常所使用的原创 2018-05-26 10:00:31 · 1225 阅读 · 0 评论