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;
}