2
(ARCがオン):リリース変数
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
dispatch_queue_t fetchDataQueue = dispatch_queue_create("Fetch Data Queue", nil);
dispatch_async(fetchDataQueue, ^{
NSArray *temp = [Product retrieveProductsByName:searchString];
dispatch_async(dispatch_get_main_queue(), ^{
_products = [temp copy];
[controller.searchResultsTableView reloadData];
});
});
dispatch_release(fetchDataQueue);
return NO;
}
それは本当に安全ですか?私の一時NSArrayは自動的にリリースされる予定ですか?
それだけではありませんが、 'temp'配列はメインキューにディスパッチしているブロックの範囲で生きているので、ブロックが終了するまで保持されますので、このコードは絶対にです安全。 –