Parse.com:使用查询获取数组列(关系)

时间:2015-02-23 08:09:42

标签: ios parse-platform pfquery

我有一个PFQueryTableViewController子类,它向Parse.com表查询一个名为messages的列的数据,该列是数组类型。

查询返回数据,但消息为空数组(尽管表{AND 1}}字段中有数据)。

以下是我为Parse数据创建的查询:

messages

奇怪的是,一旦我更新Parse对象并保存它,重新加载表数据就会获取数组列的数据。

知道为什么它会返回一个带有初始查询的空数组吗?

修改

查询结果的NSLog()输出(来自- (PFQuery *)queryForTable { PFQuery *query = [PFQuery queryWithClassName:self.parseClassName]; [query whereKey:@"user" equalTo:[PFUser currentUser]]; [query includeKey:@"messages"]; return query; } ):

- (void)objectsDidLoad:

点击按钮后创建关系:

objects: (
    "<Conversation: 0x7f8590c6b0b0, objectId: 5rO7Y2R5hs, localId: (null)> {\n    ACL = \"<PFACL: 0x7f8590e61ec0>\";\n    messages =     (\n    );\n    user = \"<PFUser: 0x7f8590d9d260, objectId: M88Oz4annq>\";\n}"
)

上面的parseObject类就是我查询的内容。

1 个答案:

答案 0 :(得分:0)

您保存邮件的方式非常容易。因为你不等待新消息&#39;要保存。所以它的ID值可能为空。

通过将下一个代码放在完成块中,确保首先保存newMessage对象。

Message *newMessage = [[Message alloc] init];
[newMessage saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if(succeeded){
        if (!self.parseObject.objectId) {
            self.parseObject = [[MyParseObject alloc] init];
            [self.parseObject setUser:[User currentUser]];
        }

        [[self.parseObject messages] addObject:newMessage];
        [self.parseObject saveInBackground];
    }
}]; 

如果没有看到Message和MyParseObject类的定义,我可以提供更多帮助。