Для моего UITableView я использую массив в качестве источника данных. Пока все отлично работает. Однако у меня возникает странная проблема: когда я использую поле поиска и ввожу несколько символов, которые я потом снова удаляю, базовый массив внезапно становится пустым. Вот фрагменты кода, которые могут быть полезны для понимания моей проблемы:
Декларация по моему .h
@interface dictionaryViewController : UIViewController <UITableViewDelegate>{
...
...
NSMutableArray *cardArray;
}
...
@property (retain) NSMutableArray *cardArray;
...
Использование в моем коде .m:
@synthesize cardArray;
...
- (void)viewDidLoad {
[super viewDidLoad];
self.cardArray = [[NSMutableArray alloc] initWithObjects:nil];
...
}
Я заполняю массив данными из моей базы данных SQL:
[self.cardArray addObject:[NSString stringWithFormat:@"%@ - %@", aQuestion, anAnswer]];
А внутри кода читайте содержимое массива, как в методе cellForRow:
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
thisCardIndex = [self.cardArray indexOfObject:cellValue];
...
}
В конце я выпускаю его, вот так (у меня действительно были некоторые другие проблемы с командой release, почему я вместо этого использовал removeObjects):
[self.cardArray removeAllObjects];
self.cardArray=nil;
В журнале не вижу ошибки. Однако отладчик показывает, что код завершается с SIGABRT, и при установке точек останова я вижу, что причиной является пустой cardArray.
Заранее спасибо за поддержку.