我使用查询 FindObjectsInBackgroundWithBlock (assync) 从 web 服务中获取值...我希望在应用程序加载之前在 appdelegate 上获得该值。我正在尝试这样做,但他仍然在检查网络服务以获取值(value)之前加载应用程序。我该如何处理?我已经尝试过使用 NSTimer..
我在 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中调用了这个方法:
-(void)checkUserVersion{
PFQuery *query = [PFQuery queryWithClassName:@"sqliteversion"]; //1
// NSNumber *n=databaseVersion;
[query whereKey:@"user_version" equalTo:[NSNumber numberWithInt:[databaseVersion integerValue]]];//2
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {//4
if (!error && [objects count]>0) {
for (PFObject *object in objects) {
valor1=[[object objectForKey:@"Value"]intValue];
user_version=[NSNumber numberWithInt:valor1];
}
}
}];
}
最佳答案
您可能想评估为什么有必要在发布前从 Parse.com 获取此信息。此外,“启动前”可能意味着很多事情,并且有许多解决方案不涉及在第一个 View 附加到窗口并显示之前做“所有事情”。
就是说...在前台运行 PFQuery 提取。但是,这样做会阻止其余代码的执行。而不是 findObjectsInBackground
只需使用 PFQuery 的 findObjects
方法。不过,我建议不要这样做,而是尝试找出一种方法来等待查询返回,同时应用程序已加载。也许您可以暂停用户交互但显示加载指示器或其他内容?
关于ios - Parse.com 应用程序在我获得我想要的值之前继续前进(异步)iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18539220/