#
import <Foundation/Foundation.h>
#
import <CoreData/CoreData.h>#define kHMCoreDataManager [HMCoreDataManager shareInstance]
@interface HMCoreDataManager : NSObject
+(HMCoreDataManager*)shareInstance;
/**CoreData Stack容器內部包含:管理對象上下文:NSManagedObjectContext *viewContext;對象管理模型:NSManagedObjectModel *managedObjectModel存儲調度器:NSPersistentStoreCoordinator *persistentStoreCoordinator;*/
@property(nonatomic,strong)NSPersistentContainer *persistentContainer;
- (
void)save;
@end
#import "HMCoreDataManager.h"@implementation HMCoreDataManager+ (HMCoreDataManager *)shareInstance
{
static HMCoreDataManager *manager =
nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{manager = [[HMCoreDataManager alloc] init];});
return manager;
}
- (NSPersistentContainer *)persistentContainer
{
if(_persistentContainer !=
nil){
return _persistentContainer;}
NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:
nil];_persistentContainer = [[NSPersistentContainer alloc] initWithName:@
"sql.db" managedObjectModel:model];[_persistentContainer loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription * description,
NSError * error) {
NSLog(@
"%@",description);
NSLog(@
"%@",error);}];
return _persistentContainer;
}- (
void)save
{
NSError *error =
nil;[
self.persistentContainer.viewContext save:&error];
if (error ==
nil) {
NSLog(@
"保存到數據庫成功");}
else{
NSLog(@
"保存到數據庫失敗:%@",error);}
}
@end
- (
void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)
event
{Person *person = [NSEntityDescription insertNewObjectForEntityForName:
@"Person" inManagedObjectContext:context1];person.name =
@"坤哥";person.age =
18;[kHMCoreDataManager save];}
- 關于數據庫的增刪改查操作可以參考我的這篇博客http://blog.csdn.net/u013263917/article/details/51882611
總結
以上是生活随笔為你收集整理的11-使用NSPersistentContainer搭建CoreData Stack的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。