iOS coreData使用遇到的问题

使用coreData,一定要有上下文环境。创建上下文时,和以前有些不同,之前

NSManagedObjeContext *context = [NSManagedObjectContext alloc] init];

或者

NSManagedObjeContext *context = [NSManagedObjectContext alloc] new];

最新的Xcode 7.1

@interface ViewController ()

//需要声明该属性 作为初始化上下文的一个参数

@property(readwrite) NSManagedObjectContextConcurrencyType concurrencyType;

@property(strong,nonatomic)NSManagedObjectContext *context;

@end

 

//创建一个名为 myDB.sqlite 的数据库 并关联上下文

- (void)setupContext {

//声明一个山下文

NSManagedObjectContext *context = [[NSManagedObjectContext alloc] initWithConcurrencyType:self.concurrencyType];

//创建一个模型对象

NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundels:nil];

//创建一个持久化存储调度器

NSPersistentStoreCoordinator *store =[ [NSPersistentStoreCoordinator alloc] initWithManagedModel:model]; 

//获取document 目录

NSString *doc = [NSSerachPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,nil) lastObject];

//创建myDB.sqlite 文件路径

NSString *sqlitePath = [doc stringByAppendingPathComponent:@"myDB.sqlite"];

//查看路径

NSLog(@"%@",sqlitePath);

[store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:sqlitePath] options:nil error:&error];

context.persistentStoreCoordinator = store;

self.context = context;

}

 

 

 

posted @ 2016-06-05 18:29  wjwdive  阅读(296)  评论(0编辑  收藏  举报