我正在开发一个 iPad 应用程序。它使用 NSOperation 在后台下载一些东西,由 NSOperationQueue 处理。我发现,除非我向 NSOperation 添加保留,否则在执行操作操作后我会崩溃。NSOperationQueue 的 addOperation 表示它保留了 NSOperation,而 NSOperation 本身保留了目标对象。因此,我不明白为什么需要我的额外保留。
这不会阻碍我的进步,除非我试图实现取消异步操作并在其位置创建一个新操作的模式。我还不能在 iPhone OS 4.0 上进行开发(它提供了 waitUntilFinished),所以我需要另一种方法来知道释放我的额外保留是安全的(或者找到一种根本没有额外保留的方法)。
有什么建议么?