Я недавно начал изучать цель-C и какао. Я медленно начинаю узнавать об управлении памятью. Обычно я немного понимаю логику этого. Но сейчас я немного растерялся. Вот моя проблема:
Я пытаюсь создать простое приложение для ios с функцией поиска. У меня есть UISearchDisplayController с UISearchbar внутри UITableViewController, который протекает (инструменты ...), как ад, когда я что-то набираю в нем. Компилятор и Анализатор не показывают никаких предупреждений или ошибок. Просто инструменты.
Я получаю ошибку из этой строки внутри метода handleSearchTerm:
self.searchResults = [[datenSort filteredArrayUsingPredicate:predicate] mutableCopy];
Вот мой метод handleSearchTerm:
- (void)handleSearchForTerm:(NSString *)searchTerm
{
self.savedSearchTerm = searchTerm;
if ([self searchResults] == nil)
{
NSMutableArray *array = [[NSMutableArray alloc] init];
self.searchResults = array;
[array release], array = nil;
}
[[self searchResults] removeAllObjects];
if ([[self savedSearchTerm] length] != 0)
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(Name contains[cd] %@)", searchTerm];
self.searchResults = [[datenSort filteredArrayUsingPredicate:predicate] mutableCopy];
}
}
все свойства высвобождаются в методе dealloc. и они:
@property (nonatomic, copy) NSString *savedSearchTerm;
@property (nonatomic, retain) NSMutableArray *datenSort;
@property (nonatomic, retain) NSMutableArray *searchResults;
и вот как я помещаю их в табличное представление: cellForRowAtIndexPath:
if(tableView == self.searchDisplayController.searchResultsTableView){
dataItem = [searchResults objectAtIndex:indexPath.row];
}else {
dataItem = [datenSort objectAtIndex:indexPath.row];
}
Ваши ответы ОЧЕНЬ высоко ценятся!