我正在为 iOS 应用程序使用后端服务 parse.com,但无法正确查询它。我需要 whereKey:matchesKey:inQuery; 方法的帮助。
我有这个代码:
//NOT WORKING
PFQuery *query1 = [PFQuery queryWithClassName:@"Object"];
PFQuery *query2 = [PFQuery queryWithClassName:@"ObjectsRelations"];
[query2 whereKey:@"user" equalTo:[PFUser currentUser]];
[query1 whereKey:@"objectId" matchesKey:@"objectPointer" inQuery:query2];
[query1 findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
// No objects
}];
它没有按我想要的方式工作。我已经尝试了几种方法来将类“ObjectsRelations”中的键“objectPointer”(它是指向类 Object 实例的指针)与查询 1 中的实际对象进行比较。我没有得到任何对象,因为比较不能按我的意愿工作,因为键 objectId 只是一个字符串,而键 objectPointer 是指向对象的指针。
当我运行这段代码时,我得到了预期的结果,但这需要我执行两个 api-request 来获取实际的 objectId 作为字符串!
//WORKING
PFQuery *query = [PFQuery queryWithClassName:@"Object"];
PFQuery *query2 = [PFQuery queryWithClassName:@"ObjectRelations"];
[query2 whereKey:@"user" equalTo:[PFUser currentUser]];
[query2 findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
PFObject *firstObject = [((PFObject*)[objects firstObject]) objectForKey:@"objectPointer"];
[query whereKey:@"objectId" equalTo:firstObject.objectId];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
//Getting the objects correctly from the class Object!
}];
}];
如何使用单个 api 请求执行此操作?如何通过查询将类的实例与类的指针进行比较?
这样的事情是我想做的:(伪代码)
[query1 where:SELF matches:@"objectPointer" inQuery:query2];
有什么建议么?