在我的Parse的“Message
”表中,有一个称为对话的字段,它是pointer
的Conversation
(我数据库中的另一个表)。
要查询Message
,我可以这样做:
PFQuery *messageQuery = [PFQuery queryWithClassName:@"Message"];
[messageQuery whereKey:@"conversation" equalTo:_conversation.objectid];
[messageQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
...
}];
还是我必须获取实际的PFObject * myConversation并使用它...
PFQuery *messageQuery = [PFQuery queryWithClassName:@"Message"];
[messageQuery whereKey:@"conversation" equalTo:myConversation];
[messageQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
...
}];
似乎#1无效,但#2却有效...我的问题是如何让#1正常工作(即,当我有指针字段时,使用PFObject的ID进行查询)
最佳答案
.objectId只是一个字符串,如果您的“对话”键包含指向myConversation的指针,则必须在等号中包含PFObject。
如果只有objectId,则可以使用以下命令搜索没有数据的指针:
PFObject * myConversation = [PFObject objectWithoutDataWithClassName:@"Conversation" objectId:_conversation.objectid];
// continue here
[messageQuery whereKey:@"conversation" equalTo:myConversation];
[messageQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
...
}];