iOS 底层原理
chenqing_512
这个作者很懒,什么都没留下…
展开
-
alloc init new的区别
初始化一个对象: NSString *string=[NSString alloc];//开辟一个内存空间,并把地址返回给指针 NSLog(@"string=%p",string); // string=0x7fb32ae01880 string=[string init];//初始化 NSLog(@"string=%p",string);//strin原创 2016-06-28 18:56:21 · 528 阅读 · 0 评论 -
iOS kvo 底层实现原理
KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用。 这是怎么实现的呢?其实这都是通过Objective-C强大的运行时(runtime)实现的。当你第一次观察某个object 时,runtime会创建一个新的继承原原创 2016-06-15 14:43:26 · 613 阅读 · 0 评论 -
Runtime 使用场景
一:rumtime原理简单分析 runtime是运行时库(Runtime Library),也简称运行时。 它是一个主要是C和汇编写的库,对C进行了特殊的处理,将结构体视为对象,将函数视为方法,使得C有了面向对象的能力,从而才创造了Objective-C。 这点也可以看出,C是编译时语言,而OC是动态运行时语言,所以在编译阶段,尽管OC中的方法没有实现也不会报错,而C会报错。转载 2016-08-17 14:35:54 · 501 阅读 · 0 评论 -
iOS NSTimer 子线程 创建与取消
1.子线程中NSTimer的开启 首先在.m文件中声明两个属性一个是子线程 一个是子线程中的NSTimer。 @property (nonatomic, strong) NSThread *thread1; @property (nonatomic, strong) NSTimer *threadTimer; 然后用GCD在全局全队中创建一个子线程并创建NSTimer。原创 2017-03-15 10:32:05 · 2756 阅读 · 0 评论