application:didFinishLaunchingWithOptions に永続ストアを作成するアプリがあります。ストアの追加には明らかに時間がかかりすぎる可能性があり、起動が完了する前に iOS がアプリを終了させてしまいます。メインスレッドからコーディネーターにストアを追加する方法は? 例はありますか? スタックオーバーフロー リンク
OS バージョン: iOS 6.1.3 (10B329) レポート バージョン: 104
例外の種類: 00000020 例外コード: 0x000000008badf00d 強調表示されたスレッド: 0
アプリケーション固有の情報: com.maksanzhi.person が時間内に起動できませんでした
経過した合計 CPU 時間 (秒): 13.470 (ユーザー 13.470、システム 0.000)、22% CPU 経過したアプリケーション CPU 時間 (秒): 0.343、1% CPU
スレッド 0 名: ディスパッチ キュー: com.apple.main-thread スレッド 0:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
if (_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"COOLPERSONS.sqldata"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:[storeURL path]]) {
NSURL *defaultStoreURL = [[NSBundle mainBundle] URLForResource:@"COOLPERSONS" withExtension:@"sqldata"];
if (defaultStoreURL) {
[fileManager copyItemAtURL:defaultStoreURL toURL:storeURL error:NULL];
[self addSkipBackupAttributeToItemAtURL:storeURL];
}
}
NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return _persistentStoreCoordinator;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
UINavigationController *nav = (UINavigationController *)self.window.rootViewController;
MainViewController *cvtc = (MainViewController *)[[nav viewControllers]objectAtIndex:0];
cvtc.managedObjectContext = self.managedObjectContext;
[self setAppereance];
return YES;
}