ios - 解析PFQueryTableViewController numberOfRowsInSection错误

时间:2015-12-03 03:53:18

标签: ios objective-c xcode parse-platform tableview

我有一个PFQueryTableViewController。

类似于Instagram显示其Feed的方式。

这是我的故事板的图片:

enter image description here

我使用以下代码:

- (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;
    }

然后我得到上述错误。这是我的控制台的图像:

enter image description here

我的假设是,无论这种方法返回什么:

- (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];

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

你的分析绝对正确!

However, PFQueryTableViewController already implements numberOfRowsInSection, so there is no need for you to implement it too.

您需要实现的只是queryForTable,而超类将负责其余的工作。