我正在学习iPhone上的套接字通信,它的指南提到了CFRunloop
(这是一个CFNetwork
指南,它可以在iOS上使用吗?)
在哪里可以学习有关iOS上的运行循环?API参考资料不足以解决问题。
看一下苹果的 多线程编程指南 中的 "Run Loops" 章节。 简而言之:
一个主要的陷阱是忘记在等待从运行循环源获取回调时运行运行循环。当您决定在主线程上繁忙地等待某些事情发生时,这有时会成为问题,但是当您创建自己的线程并向该线程注册运行循环源时,最有可能遇到此问题。对于非主线程,您需负责建立自动释放池并在必要时运行运行循环,因为应用程序主函数不会为您处理这些事情。
相对于使用运行循环机制,您最好阅读苹果的 并发编程指南,其中提供了运行循环机制的替代方案,例如操作队列和调度源。 "迁移到非线程" 章节的 "替换运行循环代码" 部分建议使用调度源而不是运行循环源来处理事件。
我相信这个项目可以帮助你清晰、充分地理解 iOS/Mac 的 Runloop,从而能够正确、有效地使用 Runloop 设计你的项目。