私があなたの場合、あなたのアプローチを再考したいと思います。あなたが具体的にそれを避ける手段を入れていない限り、plistをダウンロードするコードはapplicationDidFinishLaunching:
が返される前に呼び出されている可能性があります。これは長時間かかるとウォッチドッグが実際に正しく起動される前にアプリを強制終了する可能性があるため、これはうまくいかない。良いことではありません。
あなたは実際にバックグラウンドスレッドでダウンロードを開始し、実際の表示にスピナーを付けるだけです。だからこのようなもの:
- (void)viewDidLoad {
...
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(self.view.bounds.size.width/2.0f, self.view.bounds.size.height/2.0f);
[spinner startAnimating];
[self.view addSubview:spinner];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do your downloading of your plist, etc
dispatch_async(dispatch_get_main_queue(), ^{
[spinner removeFromSuperview];
});
});
}
あなたは素晴らしいです! – user1048042