iOS Parse SDK:如何从一对多关系计算元素
Description=我有一个允许用户发布内容的项目。这些帖子将显示在tableView中,评论不会显示在此tableView中。当用户按下post时,他们将进入一个屏幕,在那里他们可以发布评论。在tableViewCell中,将有一个类似于0条注释的标签,用于显示有多少条注释属于帖子 发生2个查询。一个查询用于填充tableView,另一个查询用于查询每篇文章在每个索引点上的注释量 期望结果=如果一篇文章上有5条评论,能够返回每篇文章上有多少条评论,这样我就可以。将它们计算成一个字符串,即5条评论 问题=我不确定如何查询查询结果,或者这是否应该发生。我甚至不确定这是否正确,请帮助有知识的人。我附上了我所做的,而不是复制粘贴我键入的所有内容[因此,如果某些内容不正确或有输入错误,请不要回复,告诉我这是代码的问题] 我所做的=iOS Parse SDK:如何从一对多关系计算元素,ios,uitableview,parse-platform,Ios,Uitableview,Parse Platform,Description=我有一个允许用户发布内容的项目。这些帖子将显示在tableView中,评论不会显示在此tableView中。当用户按下post时,他们将进入一个屏幕,在那里他们可以发布评论。在tableViewCell中,将有一个类似于0条注释的标签,用于显示有多少条注释属于帖子 发生2个查询。一个查询用于填充tableView,另一个查询用于查询每篇文章在每个索引点上的注释量 期望结果=如果一篇文章上有5条评论,能够返回每篇文章上有多少条评论,这样我就可以。将它们计算成一个字符串,即5
-viewDidLoad...
PFQuery *postQuery = [PFQuery queryWithClassName:@"Post"];
[userQuery whereKey:@"postedByID" equalTo:selectedUserID];
[userQuery orderByDescending:@"createdAt"];
[userQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
tableArray = objects;
[self.tableView reloadData];
}];
-cellForRowAtIndexPath...
PFObject *post = [tableArray objectAtIndex:indexPath.row];
PFFile *imgFile = post[@"postPicture"];
[imgFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
cell.picture.image = [UIImage imageWithData:data];
}];
NSString *dateAndTime = [NSString stringWithFormat:@"%@ %@", post[@"postDate"],post[@"postTime"]];
cell.categoryLabel.text = post[@"category"];
cell.subCategoryLabel.text = post[@"subCategory"];
cell.dateLabel.text = dateAndTime;
cell.descriptionLabel.text = post[@"description"]];
//below is where my headaches are coming from
PFQuery *commentsQuery = [PFQuery queryWithClassName:@"Comment"];
//WHAT DO I DO HERE? (this probably isn't right, but I feel like it should be)
[commentsQuery whereKey:@"parentID" containedIn:[tableArray objectAtIndexPath:indexPath.row][@"objectId"];
[commentsQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSLog(@"%@", objects);
}];
这将返回一个空日志
我知道事实上,有多个评论与一些帖子有关,但仍然没有返回任何内容。我相信这是因为我的评论不对,或者别的什么。我不知道,请帮助别人 如果我正确理解您的案例,您应该尝试:
[commentsQuery whereKey:@"parentID" equalTo:[tableArray objectAtIndexPath:indexPath.row][@"objectId"];
因为您正在查询属于特定帖子的所有评论
包含的内容将允许你得到属于某一组帖子的所有评论。
你应该考虑改变你的设计,因为对每个帖子的评论非常低效。
请查看上的文档。它专门讨论Post类上的注释计数器,然后在查询Post时将计数作为一个简单属性写的频率越低,读的成本就越低。***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:无法对type:null进行比较查询。这意味着[tableArray objectAtIndexPath:indexPath.row][@objectId]为零。因此,似乎您将一个对象与nil objectId关联到该特定行。你应该检查你的tableArray,它的所有对象都有声音值。我猜出来了。感觉有点傻真的。。。我不得不写post[@objectId],因为我之前已经说过post是=到tableArray objectAtIndexPath:indexPath.row。谢谢你的帮助!