我环顾四周想得到一个确切的答案,但找不到。
简而言之:将数据从操作队列传递到主队列的最佳方式是什么?
我有一个繁重的计算任务,它在操作队列中运行以计算数组。我想将结果传递回主队列并将它们用作 UITableView 的基础。
问题是,考虑到内存管理,我不确定传递这些数据的最佳方式是什么。(该项目不使用ARC)。autorelease
在这样的情况下使用是否安全operationQueueArray
:
[operationQueue addOperationWithBlock:^{
NSMutableArray *operationQueueArray = [[[NSMutableArray alloc] init] autorelease];
// do some heavy compute and fill the results into the operationQueueArray
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
// passing the data
[mainQueueArray removeAllObjects];
[mainQueueArray addObjectsFromArray:operationQueueArray];
[myTableView reloadData];
}];
}];
是否保证operationQueueArray
不会在mainQueue
此代码中发布?
或者我应该在某处放置一些手动版本?有没有更好的方法甚至指南如何做到这一点?