我是新手使用parse并遇到一些问题,查询我在我的解析类中添加的数据。我的问题是我可以使同步调用([query findObjects]
)工作,但异步调用([queryInBackground...]
)却失败了。
以下是两个代码段:
-(void)getAllDataFromParse{
//simple query works
PFQuery *query = [PFQuery queryWithClassName:@"wordsDB"];
[query setLimit: 1000];
NSArray *objects = [query findObjects];
}
//background query not working
PFQuery *queryInBackground = [PFQuery queryWithClassName:@"wordsDB"];
[queryInBackground findObjectsInBackgroundWithBlock:^(NSArray *objects2, NSError *error) {
if (!error) {
//query succeeds, do something
}
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
}
此方法在我的mainViewController
中调用,调用位于viewDidLoad
函数的末尾
[self performSelector:@selector(getAllDataFromParse)];
在调试中,程序到达[queryInBackground findObjectsInBackgroundWithBlock.... ]
,但在执行时,它会直接跳到方法的末尾。
我看不到任何错误消息。谁能告诉我异步调用出了什么问题?
我已经尝试在模拟器和真实设备上运行它。
答案 0 :(得分:1)
这是一个异步调用,意味着它将继续在后台运行。它到达方法的最后是完全正常的。
[queryInBackground findObjectsInBackgroundWithBlock:^(NSArray *objects2, NSError *error) {
if (!error) {
//query succeeds, do something
}
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];