IOS核心数据(核心数据)框架

1, NSManagedObjectModel:管理的对象模型,相当于实体,不过它包含了实体间的关系,,,,,,

2, NSManagedObjectContext:管理的对象上下文,操作实际内容,作用:插入数据,查询,更新,删除

3, NSPersistentStoreCoordinator:持久化存储助理,相当于数据库的连接器,,,

4, NSFetchRequest:获取数据的请求,相当于查询语句,,

5, NSPredicate:相当于查询条件

6, NSEntityDescription:实体结构

7后缀名为.xcdatamodel的包,里面的.xcdatamodel文件,用数据模型编辑器编辑,编译后为.MOMD或.MOM文件;

操作步骤:

一、建立模型对象


# import & lt; UIKit/UIKit.h>,

# import & lt; CoreData/CoreData.h>,

@class ViewController;,

,,

@ interface AppDelegate: UIResponder & lt; UIApplicationDelegate>,

,,

@ property(强,原子)ui窗口*窗口;,

,,

@ property(强,原子)ViewController * ViewController;,

,,

@ property(强,原子,只读的)NSManagedObjectModel * managedObjectModel;,

,,

@ property(强,原子,只读的)NSManagedObjectContext *获取;,

,,

@ property(强,原子,只读的)NSPersistentStoreCoordinator * persistentStoreCoordinator;,


@end


//托管对象,

——(NSManagedObjectModel *) managedObjectModel,

{,

,,如果(_managedObjectModel !=nil) {,

,,,,返回_managedObjectModel;,

,,},

//,,NSURL * modelURL=[[NSBundle mainBundle] URLForResource: @“CoreData”withExtension: @“momd”);,

//,,_managedObjectModel=[[NSManagedObjectModel alloc]并modelURL):;,

,,_managedObjectModel=[[NSManagedObjectModel mergedModelFromBundles nil):保留);,

,,返回_managedObjectModel;,

},

,

//持久化存储协调器,

——(NSPersistentStoreCoordinator *) persistentStoreCoordinator,

{,

,,如果(_persistentStoreCoordinator !=nil) {,

,,,,返回_persistentStoreCoordinator;,

,,},

//,,NSURL * storeURL=[[自我applicationDocumentsDirectory] URLByAppendingPathComponent: @“CoreaData.CDBStore”);,

//,,NSFileManager *文件管理=[NSFileManager defaultManager);,

//,,如果(!【文件管理fileExistsAtPath: [storeURL路径]]),

//,,{

//,,,,NSURL * defaultStoreURL=[[NSBundle mainBundle] URLForResource: @“CoreData”withExtension: @“CDBStore”);,

//,,,,如果(defaultStoreURL) {

//,,,,,,(文件管理copyItemAtURL: defaultStoreURL toURL: storeURL错误:无效);,

//,,,,}

//,,}

,,NSString *文档=[NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask,是的)lastObject];,

,,NSURL * storeURL=[NSURL fileURLWithPath:[文档stringByAppendingPathComponent: @“CoreData.sqlite”]];,

,,NSLog(@ % @”“路径,storeURL);,

,,NSError *误差=零;,

,,_persistentStoreCoordinator=[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[自我managedObjectModel]];,

,,如果(![_persistentStoreCoordinator addPersistentStoreWithType: NSSQLiteStoreType配置:nil URL: storeURL选项:零错误:和错误)){,

,,,,NSLog(@“错误:% @ % @”,错误,用户信息(错误);,

,,},

,,返回_persistentStoreCoordinator;,

}


//托管对象上下文,

——(NSManagedObjectContext *),获取

{,

,,如果(_managedObjectContext !=nil) {,

,,,,返回_managedObjectContext;,

,,},,,,

,,NSPersistentStoreCoordinator *协调员=(自我persistentStoreCoordinator);,

,,如果(协调员!=nil) {,

,,,,_managedObjectContext=[[NSManagedObjectContext alloc] initWithConcurrencyType NSMainQueueConcurrencyType):;,,,,,,

,,,,[_managedObjectContext setPersistentStoreCoordinator协调员):;,

,,},

,,返回_managedObjectContext;,

}


——(NSURL *) applicationDocumentsDirectory,

{,

,,返回[[[NSFileManager defaultManager] URLsForDirectory: NSDocumentDirectory inDomains: NSUserDomainMask] lastObject);,

},


@end

,,,null

IOS核心数据(核心数据)框架