Проблема с источником данных таблицы Cocoa Touch table
-
22-08-2019 - |
Вопрос
У меня возникли некоторые проблемы с отображением результатов из источника данных.Этот код покажет другой (и правильный) результат в консоли, но приведет ко всевозможной случайной ерунде в симуляторе.
("результаты" - это свойство NSMutableArray для класса.)
-(void) handleSearchForKeywords: (NSString *) keywords {
[results removeAllObjects];
int r = rand() % 10;
for( int i = 0; i < r; i++ ) {
[results addObject:[NSString stringWithFormat:@"test %i: %@", i, keywords]];
}
[self reloadTheTable];
}
-(void) reloadTheTable {
NSLog( @"current array contents: %@", results );
[tableView reloadData];
}
Я предполагаю, что это может быть как-то связано с сохранением массива в памяти или строк в массиве?Боюсь, я все еще не освоился с этим.
[правка в ответ на Marc Bessey - я думаю, что все здесь - ваши основные методы получения данных]
-(NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection: (NSInteger) section {
return [results count];
}
-(UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {
static NSString *SearchViewControllerCell = @"SearchViewControllerCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: SearchViewControllerCell];
if( cell == nil ) {
cell = [[[UITableViewCell alloc] initWithFrame: CGRectZero reuseIdentifier: SearchViewControllerCell] autorelease];
NSUInteger row = [indexPath row];
[cell setText:[results objectAtIndex:row]];
}
return cell;
}
Решение
Я не думаю, что проблема в коде, который вы опубликовали.Это более вероятно в коде, который реализует источник данных для вашего табличного представления.
Не связан с StackOverflow