2014-02-20 58 views
0

在我的数据模型中,我有一个具有指向“用户”实例的“所有者”字段的Session类。我试图检索给定用户拥有的所有会话,我只有他的objectId。这是我的查询:解析涉及解析用户的iOS关系查询

PFQuery *query = [PFQuery queryWithClassName:@"Session"]; 
NSString *userId = ...; 
[query whereKey:@"owner" equalTo:[PFObject objectWithoutDataWithClassName:@"User" objectId:userId]]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
    //Here objects is always empty, even though I have several sessions whose 'owner' matches userId 
}]; 

显然我在这里做错了什么,但我不知道是什么。你可以帮我吗?

回答

3

名称为User的课程与PFUser不相同。在内部,我相信parse.com使用_User来引用一个PFUser对象。尝试改变行:

[query whereKey:@"owner" equalTo:[PFObject objectWithoutDataWithClassName:@"User" objectId:userId]];

[query whereKey:@"owner" equalTo:[PFObject objectWithoutDataWithClassName:@"_User" objectId:userId]];

+0

非常感谢。我希望在某个地方记录下来。 – Sebastien

+0

它实际上在Parse数据浏览器中可见,正好在列名旁边。适当的文档虽然会很棒。 – cdstamper

-1

//只需添加以下代码,这将是工作,并确保你逝去的用户,而不是单纯的列名

的objectID

[查询内容包括:@“owner”];

+0

其实我正在使用错误的类名。 – Sebastien

0

我有同样的问题,解决了这个问题,如下

[query whereKey:@"studId" equalTo:[PFObject objectWithoutDataWithClassName:@"_User" objectId:objUser.objectId]]; 

其中studId是学生类的领域