Cora Data - iOS 7 上关于 Raywenderlich.com 中 How to Preload and Import Existing Data 的注解

来源:互联网 发布:noaa气象数据下载教程 编辑:程序博客网 时间:2024/06/16 15:29

在 Ray的教程中关于Core Data的第2篇文章中有一个问题一直没有被更新:在iOS 7下,如果你按照作者所述写完代码并运行,编译没有问题,但你会发现在最终结果的文件夹中不知有作者所说的4个文件,还有个xxxx.sqlit-wal 和 xxxx.sqlit-shm,然后用 SQLITE 的viewer 打开,数据库空一片片片。。。


原因,在这:https://developer.apple.com/library/ios/releasenotes/DataManagement/WhatsNew_CoreData_iOS/#//apple_ref/doc/uid/TP40013394-CH1-SW1

那就解决吧,在 managedObjectContext() 函数中做如下更改:(21,22,23 行),然后运行,去文件夹中看看,现在只有一个xxxx.sqlite文件了!!!

static NSManagedObjectContext *managedObjectContext(){    static NSManagedObjectContext *context = nil;    if (context != nil) {        return context;    }    @autoreleasepool {        context = [[NSManagedObjectContext alloc] init];                NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel()];        [context setPersistentStoreCoordinator:coordinator];                NSString *STORE_TYPE = NSSQLiteStoreType;                NSString *path = [[NSProcessInfo processInfo] arguments][0];        path = [path stringByDeletingPathExtension];        NSURL *url = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"sqlite"]];                NSError *error;        NSDictionary *dict = @{@"journal_mode":@"DELETE"};        NSDictionary *opts = @{NSSQLitePragmasOption:dict};        NSPersistentStore *newStore = [coordinator addPersistentStoreWithType:STORE_TYPE configuration:nil URL:url options:opts error:&error];                if (newStore == nil) {            NSLog(@"Store Configuration Failure %@", ([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error");        }    }    return context;}


0 0
原创粉丝点击