利用Event-Based 处理机制
现在的Mac apps 是利用Cocoa 事件系统或者Carbon 事件管理器。(类似地,iPhone应用利用由UIKit 框架提供的touch-based 事件系统。)你的应用永远不要通过查询系统来获取事件。这样做的话相当低效。事实上,当没有事件处理时,查询代码是100%的浪费CPU时间。现代的event-based APIs 是基于以下目的而设计的:
1.提高应用对用户的响应度
2.降低CPU使用率
3.最小化应用的工作集--任意给定时间加载进内存的代码业数量
4.允许系统积极有效的管理power
除了用户事件以外,还应该避免在其他情况查询。在OS X and iOS 中线程利用run loops 对定时器,网络事件与其它输入性数据提供on-demand response。许多框架对某些作业使用异步编程模型,当作业完成时,通知既定的处理函数或者方法。在OS X v10.6 and later,dispatch sources 同样提供了一种方式可使你异步接收重要事件并且在dispatch queue 执行它们。