日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

11-使用NSPersistentContainer搭建CoreData Stack

發布時間:2024/9/30 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 11-使用NSPersistentContainer搭建CoreData Stack 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 在應用的開發中,一般我們只需要搭建一個CoreData Stack就可以了,并且一個標準的CoreData Stack是可以復用的。所以這里面我們可以封裝成一個單利的工具類

  • HMCoreDataManager.h

#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
  • HMCoreDataManager.m
#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 - (NSPersistentContainer *)persistentContainer {if(_persistentContainer != nil){return _persistentContainer;}//1.創建對象管理模型// //根據某個模型文件路徑創建模型文件 // NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:[[NSBundle mainBundle]URLForResource:@"Person" withExtension:@"momd"]];//合并Bundle所有.momd文件//budles: 指定為nil,自動從mainBundle里找所有.momd文件NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:nil];//2.創建NSPersistentContainer/*** name:數據庫文件名稱*/_persistentContainer = [[NSPersistentContainer alloc] initWithName:@"sql.db" managedObjectModel:model];//3.加載存儲器[_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 {//創建CoreData模型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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。