Core Data应用程序无法及时启动

时间:2013-03-29 05:03:40

标签: ios sqlite core-data appdelegate

我有一个在应用程序中创建持久存储的应用程序:didFinishLaunchingWithOptions。添加商店显然需要太长时间,这会导致iOS在完成启动之前终止应用程序。 如何将商店添加到主线程的协调器?任何例子? stackoverflow link

操作系统版本: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名称:Dispatch queue: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;

}

1 个答案:

答案 0 :(得分:3)

作为一般建议,您不应在applicationDidFinishLaunching方法中创建任何重要内容。核心数据持久存储创建起来并不重要,但由于迁移过程,该功能可能很复杂。为了确保这是持久性存储而不是其他东西,请尝试注释掉那部分代码。 您是否正在使用数据初始化商店?