0

我使用查询 FindObjectsInBackgroundWithBlock (assync) 从 web 服务中获取值...我希望在应用加载之前在 appdelegate 上获得该值。我正在尝试这样做,但他仍然在检查网络服务以获取价值之前加载应用程序。我该如何处理?我已经尝试过使用 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];


            }

        }
    }];
}
4

2 回答 2

1

您可能想要评估为什么需要在发布前从 Parse.com 获取此信息。此外,说“在发布之前”可能意味着很多事情,并且有许多解决方案不涉及在第一个视图附加到窗口并显示之前做“所有事情”。

也就是说...在前台运行 PFQuery 提取。但是,这样做会阻止其余代码的执行。而不是findObjectsInBackground仅仅使用findObjectsPFQuery 的方法。不过,我建议不要这样做,而是尝试找出一种方法,在应用程序已经加载时等待查询返回。也许您可以暂停用户交互但显示加载指示器或其他内容?

于 2013-08-30T19:17:38.190 回答
1

在应用程序完成启动之前,您不能在应用程序中运行任何代码。如果该值对您的应用程序开始工作至关重要,则必须显示“等待数据”消息。

于 2013-08-30T18:41:09.640 回答