Выпуск переменных, определенных внутри блока - PullRequest
2 голосов
/ 04 марта 2012

Глядя на этот код (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 Ответ

2 голосов
/ 04 марта 2012

Да, если у вас есть ARC, это будет сделано автоматически. И, конечно, Mac OS X - это современная Система, и обычно все ваши объекты будут освобождены, если ваше приложение завершится.

...