2012-03-04 8 views
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は自動的にリリースされる予定ですか?

答えて

2

はい、ARCをオンにしている場合は自動的に行われます。もちろん、Mac OS Xは最新のシステムです。通常、あなたのアプリケーションが終了すると、あなたのオブジェクトはすべて解放されます。

+0

それだけではありませんが、 'temp'配列はメインキューにディスパッチしているブロックの範囲で生きているので、ブロックが終了するまで保持されますので、このコードは絶対にです安全。 –

関連する問題