2
我有这样的代码:如何在调用dealloc后停止运行块? IOS
__block NSMutableArray *subCategoriesBlock = self.subCategories ;
__block UITableView *lstSubCategoriesBlock = self.lstSubCategories;
[[AsyncRequest initRequest: onCompletedBlock:^(NSMutableArray *subcategories) {
[subCategoriesBlock addObjectsFromArray:subcategories];
[lstSubCategoriesBlock reloadData];
}]ExecuteRequest];
AsyncRequest类将派上后台的HTTP请求,然后将运行onCompletedBlock。
我的问题: 有些时候系统释放当前的视图控制器,然后调用onCompleted块,并崩溃在[lstSubCategoriesBlock reloadData]
因为它已经释放。
我应该怎么做,防止系统在执行viewContorller时执行[lstSubCategoriesBlock reloadData]
?
的'__block'没用在这里 - 这些变量永远不会分配给 – newacct 2014-08-27 19:10:12
@newacct请你提供更多的解释! – david 2014-08-28 07:33:06
变量上的'__block'只有在变量被分配到块内部时,或者变量被分配到块外部并且希望在块内部看到变化时才有用。这些都不在这里发生。 – newacct 2014-08-28 10:15:30