CoreData框架使用的思路:
一、創建上下文的思路
1.”初始化 NSManagedObjectModel 對象,加載模型文件,讀取 app 中所有的實體信息
NSManagedObjectModel * model = [NSManagedObjectModel mergedModelFromBundles:nil];
2.”根據 model 來初始化,NSPersistentStoreCoordinator 對象,並添加持久化庫
NSPersistentStoreCoordinator * psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
2.1”添加數據庫
NSString * doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSURL * url = [NSURL fileURLWithPath:[doc stringByAppendingPathComponent:@"person.sqlite"]];
[psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:nil error:nil];
3.”根據 psc 初始化上下文NSManagedObjectContext 對象
NSManagedObjectContext *context = [[NSManagedObjectContext alloc ] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
context.persistentStoreCoordinator = psc;
二、添加數據到數據庫思路
1.”根據上下文創建對象
Person * person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.context];
person.name = @"WB";
person.age = 26;
2.”利用上下文對象,將數據同步到持久化存儲庫
[context save:nil];
三、從數據庫中查找數據
1.”初始化一個查詢請求
NSFetchRequest *request = [[NSFetchRequest alloc] init];
2.”設置要查詢的實體
request.entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.context];
3.”執行請求
NSArray *objs = [self.context executeFetchRequest:request error:nil];
四、刪除數據庫中的數據
1.”傳入需要刪除的實體對象
[context deleteObject:managedObject];
2.”將結果同步到數據庫
[context save:nil];