Я хотел бы иметь PFQueryTableViewController
с двумя разделами:
- раздел 1: отображает
PFObjects
запрошенных (контакты из адресной книги, которые используют приложение) - раздел 2: отображает объекты массива (списки всех контактов из адресной книги)
На данный момент устанавливаю количество секций:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2;
}
Я устанавливаю количество строк в разделе:
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (section == 1)
{
return [self.contacts count];
}
else
{
return [self.objects count];
}
return 1;
}
Когда я пытаюсь отобразить содержимое ячеек, я получаю сбой при прокрутке:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
static NSString *CellIdentifier = @"Cell";
PFTableViewCell *cell = (PFTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[PFTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
}
if (indexPath.section == 0)
{
UILabel *name = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
name.text = object[@"username"];
[cell addSubview:name];
}
else
{
UILabel *name = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
name.text = [self.contacts objectAtIndex:indexPath.row];
[cell addSubview:name];
NSLog(@"%@", [self.contacts objectAtIndex:20]);
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
Я получаю сообщение об ошибке: [__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]
Причина должна заключаться в том, что PFObject
запрашивается для каждой строки разделов 1 и 2, и, поскольку у меня больше объектов в разделах 2, он автоматически выходит за пределы и аварийно завершает работу при прокрутке.
Как лучше всего отобразить два раздела с двумя dataSource
в PFQueryTableViewController
? Нужно ли вставлять PFQueryTableViewController
внутрь UITableViewController
?