我有一个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类就是我查询的内容。
答案 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类的定义,我可以提供更多帮助。