释放块内定义的变量

时间:2012-03-04 17:19:14

标签: objective-c ios5 objective-c-blocks

查看此代码(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会自动释放吗?

1 个答案:

答案 0 :(得分:2)

是的,如果您有ARC,那将自动完成。当然,Mac OS X是一个现代化的系统,如果您的应用程序终止,通常会释放所有对象。