正如NSOperationQueue
Class Reference 所说:在 iOS 中,操作队列不Grand Central Dispatch
用于执行操作。它们为非并发操作创建单独的线程,并从当前线程启动并发操作。
但我发现在 iOS 4.2.1 中,队列总是为并发或非并发操作创建线程。而且我认为队列根本不关心并发或非并发,因为 isConcurrent 中的断点永远不会被打破。所以我认为参考是错误的......
正如NSOperationQueue
Class Reference 所说:在 iOS 中,操作队列不Grand Central Dispatch
用于执行操作。它们为非并发操作创建单独的线程,并从当前线程启动并发操作。
但我发现在 iOS 4.2.1 中,队列总是为并发或非并发操作创建线程。而且我认为队列根本不关心并发或非并发,因为 isConcurrent 中的断点永远不会被打破。所以我认为参考是错误的......
如果您查看 NSOperation 的文档,您应该会看到有关 Mac 10.6(大致对应于 iOS 4.0)的注释,忽略了 isConcurrent。
基本上,创建并发 NSOperation 的唯一原因是您要手动触发它。
NSOperationQueue
确实使用GCD。从文档中:
在 iOS 4 及更高版本中,操作队列使用 Grand Central Dispatch 来执行操作。