【发布时间】:2012-02-17 21:46:45
【问题描述】:
我仍在努力了解 NSOperations。我希望用户能够发起一个 HTTP 请求,将该请求封装到一个 NSOperation 对象中,然后忘记它。我想在我的主代码中释放 NSOperation 对象,但让它由 NSOperationQueue 保留。
每个 NSOperation 通过将结果保存到核心数据中来完成,或者可以取消它。但是,我认为我只需要取消所有未完成的操作,而不是单个操作。例如,如果应用程序终止,我可能会全部取消它们。
这让我可以让用户继续发起请求,而不必单独跟踪它们。我可以重用相同的对象指针来初始化 NSOperation 对象,将其排队,然后释放它。如果 NSOperationQueue 在添加时保留 NSOperation,这看起来非常简单。
队列将保留操作,所以我可以在实例化的地方释放它吗?
另外,由于我是 ARC 的新手(我还没有尝试过),我该如何转让此所有权?我想我希望 NSOperation 在队列中有一个强大的属性属性,但我不认为我想用一个弱属性属性来实例化它。
【问题讨论】:
标签: cocoa-touch cocoa automatic-ref-counting nsoperation nsoperationqueue