在我的Parse的“Message”表中,有一个称为对话的字段,它是pointerConversation(我数据库中的另一个表)。

要查询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) {

      ...

}];

09-17 03:07