我从文档中复制了PFQuery的示例,将我的字段名和类名放在其中,但它从未击中completionBlock。
- (void) loadMyWindows {
PFQuery *query = [PFQuery queryWithClassName:@"RGWindow"];
[query whereKey:@"creatorID" equalTo:me.facebookID];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
// it never gets here...
if (!error) {
NSLog(@"Successfully retrieved %d objects.", objects.count);
for (PFObject *object in objects) {
NSLog(@"%@", object.objectId);
}
[self gotoMain];
} else {
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];我反复检查过许多times...there是数据浏览器中的几个RGWindow对象,它们有一个"creatorID“字段,以及它们的ACL的”公共读取“。
我很困惑。
发布于 2014-11-08 23:02:32
事实证明,我的PFObject子类有一个init方法是不允许的,这显然是在这个随机的地方造成的破坏。也许我应该多读些文档。
发布于 2014-11-08 04:10:02
我终于找到了解决方案:确保在尝试调用之前实例化所有对象。如果您有任何空值,则在查询之前挂起并阻塞--它只是停止运行该特定查询的代码。例如:
NSLog(@"test1");
PFQuery *dailyChallengesQuery = [GrowthChallenges query];
NSLog(@"test2");
[dailyChallengesQuery whereKey:kParse_GrowthChallengesGrowthRole equalTo:currentRole];
//When currentVirtue = nil, THIS JUST HANGS - nothing below here is called properly
[dailyChallengesQuery whereKey:kParse_GrowthChallengesGrowthVirtue equalTo:currentVirtue];
NSLog(@"test3");
[dailyChallengesQuery getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
NSLog(@"test4");
currentChallenge = (GrowthChallenges *)object;
[self setupTableView];
}];当currentVirtue为零时,它会记录:
test1
test2
但是,当正确设置currentVirtue时,它会记录:
test1
test2
test3
test4
在设置查询之前,请检查您的me.facebookID变量,以确保它不是零。
https://stackoverflow.com/questions/26646778
复制相似问题