我有一个PFQueryTableViewController。
类似于Instagram显示其Feed的方式。
这是我的故事板的图片:
我使用以下代码:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return self.objects.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 4;
}
因此,对于每个对象,都有一个部分。在每个部分中,它们是四个单元格。这样我就可以轻松地动态调整某些单元格。 (例如,包含对象文本的单元格可以根据文本的数量动态调整大小。)
问题是,如果我从解析中检索的对象少于四个,则此代码会导致崩溃:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 4;
}
我添加了一个异常断点,它显示此方法负责导致错误:
- (PFObject *)objectAtIndexPath:(NSIndexPath *)indexPath {
return self.objects[indexPath.row];
}
它突出显示此行专门用于导致错误:
return self.objects[indexPath.row];
因此,出于某种原因,如果此方法返回的对象少于四个,例如:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
然后我得到上述错误。这是我的控制台的图像:
我的假设是,无论这种方法返回什么:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
用作调用此方法的索引:
[self.objects objectAtIndex:methodReturnValue];
这就是为什么如果少于4个对象并且numberOfRowsInSection
每个部分要求4个单元格并且也调用上面的方法,那么很明显它将通过错误因为它要求一个对象当只有一个对象时,在indexPath 4上。
如果这是实际错误,我不是,但它是我得到的最接近的。
以下是我用于部分代码的资源,因为我在PFQueryTableViewController
中使用了部分:Parse Sections Post(即使我最终只是访问[self.objects objectAtIndex:indexPath.section];
)
非常感谢任何帮助!
答案 0 :(得分:1)
你的分析绝对正确!
您需要实现的只是queryForTable
,而超类将负责其余的工作。