Источник данных табличного представления предназначен для предоставления информации табличному представлению. Когда ему нужно отобразить значения, он спрашивает свой источник данных, сколько разделов есть, сколько строк в определенном разделе. Метод, который возвращает количество разделов, не требуется, и по умолчанию возвращает 1. Но это хорошая практика, чтобы всегда реализовывать его.
Я могу понять из комментариев в вашем коде, есть только один раздел.
// not required
-(NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
// you said only one section
return 1;
}
Итак, теперь вы возвращаете правильное количество разделов, табличное представление должно знать, сколько строк в каждом разделе (даже только с одним разделом), и это происходит в: -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
, что требуется метод.
-(NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
// return here the number of rows
// you have only one, don't check the section number...
return [self.tabWebSites count];
}
Наконец, источник данных должен возвращать каждую ячейку в табличное представление. Я вижу, вы пытаетесь в -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
сравнить section
с целым числом. section
- это тип NSIndexPath
, а не int
или NSUInteger
, поэтому вы не можете сравнивать это. Вместо этого вы можете получить номер раздела и строки соответственно с помощью:
NSUInteger sectionNumber = [indexPath section];
NSUInteger rowNumber = [indexPath row];
И затем с этими двумя числами вы можете получить правильный объект в массиве и установить содержимое ячейки.
Полезную информацию вы найдете в Руководство по программированию табличного представления для iOS от Apple. Надеюсь, это поможет.