parse.com两个类之间的查询

时间:2014-04-06 01:09:04

标签: objective-c parse-platform pfquery

**编辑:抱歉,我不得不编辑我的问题以清除其他用户,所以我删除了所有内容。

所以我设法在解析的一个表中的两个用户之间建立某种关系,这就是它的样子: enter image description here

我的课程是NewChat和用户' XcnKqF0tmO'是我的当前用户。 我试图创建一个查询来接收来自另一个名为phoneNumber的类的文本(文本是:hello): enter image description here

你可以看到接收器' T9kDJwePc' (在第一张图片上)是相同的用户' ZZ6mRK ..' (在第二张照片上。 我想要做的是从发件人创建一个查询' XcnKqf0tmO' (第1张图片)到T9kPDJwePc实际上(如果我点击接收者姓名)是ZZ6MRKr5J1并获取文字 "你好"进入我的TextField。我尝试了以下没有工作的组合:

  PFQuery *newOne = [PFQuery queryWithClassName:@"NewChat"];
// [newOne includeKey:@"reciever"]; <--- i tried with this line and with it
[newOne whereKey:@"sender" equalTo:[PFUser currentUser]];

PFQuery *phoneNumber = [PFQuery queryWithClassName:@"phoneNumber"];
[phoneNumber whereKey:@"objectId" matchesKey:@"reciever" inQuery:newOne];
[phoneNumber findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

    NSLog(@"  object %@", objects);

}];

我的查询返回没有结果,我的NSLOG显示:&#34; object()&#34;。 为什么我没有结果?因为第一张图像上的接收者名称和第二张图像上的对象ID相等......

1 个答案:

答案 0 :(得分:1)

问题是第一张图片上的指针nrlsl9lkvt不是指向带有testing123文本的记录,而是指向下面的记录。带有testing123文本的phoneNumber记录有objectId o5igPWMaat,而不是nrlsl9lkvt。

您可以通过查询NewChat对象来获取文本并使用

[query includeKey:@"receiver"]; 

确保也下载phoneNumber对象。只需在phoneNumber中的右侧对象中添加文本,即可完成所有设置

<强>更新

自编辑问题以来:

您的查询应该返回您想要的对象(使用objectId T9kPD ...)。你有没有尝试我建议的日志声明? NSLog(@"objects: %d", [objects count]);

获取所需的文字:

PFObject *object = [objects lastObject];  // Since your query should return only 1 object
NSLog(object[@"text"]);  // The "text" property of the object returned

如果您只对一个对象感兴趣(如上所述),或者知道只有一个对象,则应该使用getFirstObjectInBackgroundWithBlock:而不是findObjectsInBackground...。这将返回一个对象而不是数组,并且无需调用[objects lastObject];