Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS Parse SDK:如何从一对多关系计算元素_Ios_Uitableview_Parse Platform - Fatal编程技术网

iOS Parse SDK:如何从一对多关系计算元素

iOS Parse SDK:如何从一对多关系计算元素,ios,uitableview,parse-platform,Ios,Uitableview,Parse Platform,Description=我有一个允许用户发布内容的项目。这些帖子将显示在tableView中,评论不会显示在此tableView中。当用户按下post时,他们将进入一个屏幕,在那里他们可以发布评论。在tableViewCell中,将有一个类似于0条注释的标签,用于显示有多少条注释属于帖子 发生2个查询。一个查询用于填充tableView,另一个查询用于查询每篇文章在每个索引点上的注释量 期望结果=如果一篇文章上有5条评论,能够返回每篇文章上有多少条评论,这样我就可以。将它们计算成一个字符串,即5

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。谢谢你的帮助!