摘要:
1 import UIKit 2 3 var str = "Hello, playground" 4 5 var myVariable = 42 6 myVariable = 50 7 let myConstant = 42 8 9 let implicitInteger = 70 10 let implicitDouble = 70.0 11 le... 阅读全文
摘要:
本条要点:(作者总结) 在解决多线程与任务管理问题时,派发队列并非唯一方案。 操作队列提供了一套高层的 Objective-C API,能实现纯 GCD 所具备的绝大部份功能,而且还能完成一些更为复杂的操作,那些操作若改用 GCD 来实现,则需另外编写代码。 GCD 技术确实很棒,不过有时侯采用标准 阅读全文
摘要:
本条要点:(作者总结) performSelector 系列方法在内存管理方面容易有疏失。它无法确定将要执行的选择子具体是什么,因而ARC 编译器也就无法插入适当的内存管理方法。 performSelector 系列方法所能处理的选择子太过局限了,选择子的返回值类型及发送给方法的参数个数都受到限制。 阅读全文
摘要:
本条要点:(作者总结) 派发队列可用来表述同步语义(synchronization semantic),这种做法要比使用 @synchronized 块或 NSLock 对象更简单。 将同步与异步派发结合起来,可以实现与普通加锁机制一样的同步行为,而这么做却不会阻塞执行异步派发的线程。 使用同步队列 阅读全文
摘要:
本条要点:(作者总结) 如果块所捕获的对象直接或间接地保留了块本身,那么就得当心保留环问题。 一定要找个适当的时机解除保留环,而不能把责任推给API 的调用者。 使用块时,若不仔细思量,则很容易导致“保留环”(retain cycle)。比方说,下面这个类就提供了一套接口,调用者可由此从某个 URL 阅读全文