背景
我是一名正在为 Mac 构建应用程序而苦苦挣扎的开发人员。我即将接触到雪豹。到目前为止,我一直在 Leopard 上进行构建。我只做了大约一年的 Cocoa 开发,并不是很紧张。
我读过很多关于雪豹和大中央调度的文章。我知道它使用积木,但我没有深入了解积木的工作原理或 Grand Central Dispatch 的工作原理。
我的问题
我如何最好地为 Snow Leopard 和 Leopard 开发一个代码库,同时最大限度地利用 Snow Leopard 中新的多线程功能?
NSOperationQueue
我的直觉不是直接在我的代码中处理 GCD,但是当需要放入队列时,请使用 NSOperationQueue,因为我从 Mike Ashes 问答环节中读到,在 Snow Leopard 中,NSOperationQueue 充分利用了 GCD 和他的崩溃者在 Leopard 中发现的问题现已修复。
手动线程管理
但是,当涉及到管理特定的后台线程时,有没有办法利用 Snow Leopard 中更易于使用的线程管理功能而不破坏 Leopard 中的东西?还是人们会建议我为每个操作系统设置不同的目标,每个操作系统都有不同的类?这对我来说似乎是一场等待发生的维护噩梦。
或者,也许我应该忍受没有针对 Snow Leopard 完全优化我的应用程序并坚持使用+(void)detachNewThreadSelector:toTarget:withObject:
或类似的东西。
人们怎么想?