摘要: 一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,通常的代码逻辑 是这样的: 1 2 3 4 5 6 7 function loop() { initialize(); do { var message = get_next_mes 阅读全文
posted @ 2017-02-25 21:13 昊天科技 阅读(264) 评论(0) 推荐(0) 编辑
摘要: RunLoop只能运行在一种mode下,如果要换mode,当前的loop也需要停下重启成新的。利用这个机制,ScrollView滚动过程中NSDefaultRunLoopMode(kCFRunLoopDefaultMode)的mode会切换到UITrackingRunLoopMode来保证Scrol 阅读全文
posted @ 2017-02-25 21:12 昊天科技 阅读(528) 评论(0) 推荐(0) 编辑
摘要: model 主要是用来指定事件在运行循环中的优先级的,分为: NSDefaultRunLoopMode(kCFRunLoopDefaultMode):默认,空闲状态 UITrackingRunLoopMode:ScrollView滑动时 UIInitializationRunLoopMode:启动时 阅读全文
posted @ 2017-02-25 21:11 昊天科技 阅读(1458) 评论(0) 推荐(0) 编辑
摘要: Run loop,正如其名,loop表示某种循环,和run放在一起就表示一直在运行着的循环。实际上,run loop和线程是紧密相连的,可以这样说run loop是为了线程而生,没有线程,它就没有存在的必要。Run loops是线程的基础架构部分, Cocoa 和 CoreFundation 都提供 阅读全文
posted @ 2017-02-25 21:10 昊天科技 阅读(4241) 评论(0) 推荐(0) 编辑
摘要: 解释: 2.运行时创建的类是可以添加实例变量,调用class_addIvar函数.但是的在调用objc_allocateClassPair之后,objc_registerClassPair之前,原因同上. 阅读全文
posted @ 2017-02-25 20:55 昊天科技 阅读(1373) 评论(0) 推荐(0) 编辑
摘要: 首先了解weak是一种非拥有关系,属性所值对象销毁时,属性值会情况(nil). Runtime对注册的类会进行布局,对于weak对象会放入hash表中,用weak指向的内存地址作为key,当对象引用计数器为0时会dealloc,假如weak指向的对象内存地址为a,那么就会以a为键,在这个weak表中 阅读全文
posted @ 2017-02-25 20:54 昊天科技 阅读(1463) 评论(0) 推荐(0) 编辑
摘要: 1) 在protocol中视同property只会生成setter getter方法声明,我们使用属性的目的是希望遵守我协议的对象能实现该属性 2) 在category使用@property也是只会生成setter,getter方法的声明,如果我们挣得需要给category增加属性的实现,需要借助于 阅读全文
posted @ 2017-02-25 20:49 昊天科技 阅读(457) 评论(0) 推荐(0) 编辑
摘要: @property有两个对应的词,@synthsize @dynamic如果都没写,那么默认就是@synthsize var = _var; @synthsize 如果没有手动实现setter getter方法那么自动生成 ,自动生成_var变量 @dynamic告诉编译器:属性的setter,ge 阅读全文
posted @ 2017-02-25 20:48 昊天科技 阅读(1589) 评论(0) 推荐(0) 编辑