1.要整个项目的xib全部放到一个bundle文件中 2.用脚本把所有的xib编译成nib ,终端CD进入到项目中的目录,执行以下脚本。find . -type f -nam...
1.要整个项目的xib全部放到一个bundle文件中 2.用脚本把所有的xib编译成nib ,终端CD进入到项目中的目录,执行以下脚本。find . -type f -nam...
CADisplayLink 我写了个继承子类 发现可以被继承
CADisplayLink详解前言 在开发中我们经常会遇到使用计时器的情况,例如图片轮播,进度条的绘制等就是比较常见的应用场景.常用的计时器有CADisplayLink和NSTimer,这一章我们来讲解下...
ios中NSObject的定义 查看苹果源码可看到,苹果源码地址Source Browser struct objc_object { Class_Nonnull isa...
GCD 1、创建GCD任务的方式有 1、dispatch_async(异步执行) 2、dispatch_sync (同步执行) 2、创建GCD任务时需要加入到队列中执行。GC...
HTTPS简介 HTTPS称为HTTP Secure,所谓安全HTTP。 通常来说,HTTP 协议直接和 TCP 通讯,HTTP 请求响应数据组装好后交给 TCP 来进行传输...
使用copy跟strong修饰属性的异同 首先声明2个属性,分别是strong,copy修饰 @property (nonatomic,strong) NSString *s...
Block原理 当我们声明一个block变量a并为它赋值时,其实就是创建一个函数指针ptrA,再根据block a赋值的代码生成一个静态函数,而指针ptrA就指向这个静态函数...
为什么代理要用weak? 答:因为使用weak是弱引用,外部可以释放对象。指明该对象并不负责保持delegate这个对象,delegate这个对象的销毁由外部控制。如果使用s...
最近在学习设计模式,自己做了个小demo。下面记录下 实际iOS开发中的MVC模式中,controller模块跟view模块紧密耦合,很容易形成胖controller,可单元...