我有一个UITableView,当单元格出现时,我会逐个从远程服务器下载数据。
每个单元格创建一个NSOperationQueue是否安全?我担心这可能会引发线程爆炸(如果线程太多)。 每个单元实例的NSOperationQueue更容易开发,因为一旦单元格被重用,我就可以取消NSOperationQueue上的所有操作。
相反,如果我每个UIViewController使用一个NSOperationQueue,那么我可以将NSOperationQueue传递给单元格,并且单元格可以将其NSOperation添加到该队列。但是,我需要以某种方式处理,以便在重用单元格时取消该操作(在UIViewController内的字典中存储对NSOperation的引用等)。
大多数教程在UIViewController中都有一个NSOperationQueue,但我看过一个他为每个单元格使用一个NSOperationQueue。
答案 0 :(得分:0)
在下面给出的教程中,提供了取消操作的选项,并根据您的要求恢复操作。
Ray Wenderlich的一个很好的例子:http://www.raywenderlich.com/19788
<强>更新强>
如果您在NSOperationQueue
中使用UITableView
,那么您需要妥善管理。例如,AFNetworking库使用NSOperationQueue
从URL进行图像下载以及其他可以正常工作的任务。所以我的建议是如果你想在NSOperationQueue
中使用UITableView
然后正确管理它,否则它肯定会导致将来处理长数据的问题。