Ios 返回findObjectsInBackgroundWithBlock中的值

Ios 返回findObjectsInBackgroundWithBlock中的值,ios,objective-c,parse-platform,Ios,Objective C,Parse Platform,在我的queryForTable方法中,我试图在findobjectsinbackgroundithblock内返回一个查询,因为我的结果依赖于块内的某些内容,但它会导致错误: Incompatible block pointer types sending 'PFQuery *(^)(NSArray *__strong, NSError *__strong)' to parameter of type 'PFArrayResultBlock' (aka 'void (^)(NSArray *_

在我的
queryForTable
方法中,我试图在
findobjectsinbackgroundithblock
内返回一个查询,因为我的结果依赖于块内的某些内容,但它会导致错误:

Incompatible block pointer types sending 'PFQuery *(^)(NSArray *__strong, NSError *__strong)' to parameter of type 'PFArrayResultBlock' (aka 'void (^)(NSArray *__strong, NSError *__strong)')
我这样做是因为我需要将
ObjectID
与对象指针进行比较,这在Parse.com中是不允许的,因此我必须从对象指针中获取所有
ObjectID
,并将它们保存在块内的数组中,然后使用数组进行另一个查询,然后返回查询

但关键是我不能在块内返回查询,查询依赖于块内的结果

实现这一目标的正确方法是什么?谢谢

编辑(提供代码):


似乎您需要当前用户正在跟踪的
User
对象的列表。在第一次查询之后,您已经有了它,因为您在
toUser
上使用了
includeKey

- (PFQuery *)queryForTable { 
    PFQuery *isFollowingQuery = [PFQuery queryWithClassName:kPAPActivityClassKey];
    [isFollowingQuery whereKey:@"fromUser" equalTo:self.User];
    [isFollowingQuery whereKey:@"activity" equalTo:@"follow"];
    [isFollowingQuery includeKey:@"toUser"]; //toUser is a user pointer
    return isFollowingQuery;
}
现在,这是从queryForTable返回的正确查询

然后,在
cellforrowatinexpath
方法中,获得要显示的用户对象:

PFUser *user = [object objectForKey:@"toUser"];
请记住,在
PFQueryTableViewController
中的特殊
cellforrowatinexpath
中,您还可以获得当前行的对象


然后可以从用户对象中获取所需的值All inn cellForRowAtIndexPath

您能发布您的代码吗?可能有一种方法不需要两个单独的查询就可以实现这一点,但很难从这一描述中准确理解您在做什么。此外,在
queryForTable
中使用
findobjectsinbackgroundithblock
也行不通
findObjectsInBackgroundWithBlock
是一种异步方法。你真的不想依赖于
queryForTable
中的查询。嗨@Alex,我已经添加了我的代码,基本上我只是想在表中显示当前用户正在跟踪的用户列表。我认为你想在users表中查询当前用户正在跟踪的用户列表是正确的吗?Parse不允许从客户端查询Users表中除当前用户之外的任何记录。我认为您可能需要一个云代码方法,该方法使用主密钥来执行您想要的操作。那么这就行不通了。代码在任何其他地方都可以正常工作,但在queryForTable中不行(因为您只需要返回一个查询,而不是用户列表)。让我想一个简单明了的解决方案,谢谢!
PFUser *user = [object objectForKey:@"toUser"];