使用objectid解析ios wherekey

时间:2014-03-08 04:47:05

标签: ios objective-c parse-platform

在Parse的“Message”表中,我有一个名为conversation的字段,它是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进行查询)< /强>

1 个答案:

答案 0 :(得分:5)

.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) {

      ...

}];