-1

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

所以我设法在解析的一个表中的两个用户之间建立某种关系,这就是它的样子: 在此处输入图像描述

我的班级是 NewChat,用户“XcnKqF0tmO”是我的当前用户。我正在尝试创建一个查询以接收来自另一个名为 phoneNumber 的类的文本(文本是:你好): 在此处输入图像描述

如您所见,接收器“T9kDJwePc”(在第一张图片上)是同一用户“ZZ6mRK..”(在第二张图片上。我要做的是从发件人“XcnKqf0tmO”(第一张)创建一个查询图片)到 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 显示:“object()”。为什么我没有结果?因为第一个图像上的接收者名称和第二个图像上的对象 ID 是相等的......

4

1 回答 1

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];

于 2014-04-06T10:12:07.143 回答