04-CoreData Stack技术栈堆手动实现
生活随笔
收集整理的這篇文章主要介紹了
04-CoreData Stack技术栈堆手动实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
-
根據上一小節CoreDataStack的架構圖,我們逐一來創建所需要的核心組件來搭建我們使用CoreData的環境
-
學習這一小節,我們已經不需要勾選Use CoreDtat選項來讓系統幫助我們完成這一步驟
1.1-創建NSManagedObjectModel
//懶加載managedObjectModel - (NSManagedObjectModel *)managedObjectModel {if (_managedObjectModel != nil) {return _managedObjectModel;}// //根據某個模型文件路徑創建模型文件 // _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:[[NSBundle mainBundle]URLForResource:@"Person" withExtension:@"momd"]];//合并Bundle所有.momd文件//budles: 指定為nil,自動從mainBundle里找所有.momd文件_managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];return _managedObjectModel;}1.2-創建NSPersistentStoreCoordinator
//懶加載persistentStoreCoordinator -(NSPersistentStoreCoordinator*)persistentStoreCoordinator {if (_persistentStoreCoordinator != nil) {return _persistentStoreCoordinator;}//根據模型文件創建存儲調度器_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel];/*** 給存儲調度器添加存儲器** tyep:存儲類型* configuration:配置信息 一般為nil* options:屬性信息 一般為nil* URL:存儲文件路徑*/NSURL *url = [[self getDocumentsUrl] URLByAppendingPathComponent:@"person.db" isDirectory:YES];[_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:nil error:nil];return _persistentStoreCoordinator;}1.3-創建NSManagedObjectContext
//懶加載managedObjectContext -(NSManagedObjectContext*)managedObjectContext {if (_managedObjectContext != nil) {return _managedObjectContext;}//參數表示線程類型 NSPrivateQueueConcurrencyType比NSMainQueueConcurrencyType略有延遲_managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];//設置存儲調度器[_managedObjectContext setPersistentStoreCoordinator:self.persistentStoreCoordinator];return _managedObjectContext; }1.4-在實際開發中的封裝
-
實際開發中,我們搭建CoreData使用環境的代碼是可以復用的,我們可以創建一個工具類來管理
-
.h文件
- .m文件
總結
以上是生活随笔為你收集整理的04-CoreData Stack技术栈堆手动实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 03-CoreData原理
- 下一篇: 06-CoreData增删改查