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