在 nib 中可视化地操作数据。 .h文件 [objc] view plaincopyprint?
- #import
-
- @interface Persistence : NSObject
-
- //数据模型对象
- @property(strong,nonatomic) NSManagedObjectModel *managedObjectModel;
- //上下文对象
- @property(strong,nonatomic) NSManagedObjectContext *managedObjectContext;
- //持久性存储区
- @property(strong,nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
-
- //确定sqlite文件存储路径
- -(NSURL *)storeURL;
-
- //初始化Core Data使用的数据库
- -(NSPersistentStoreCoordinator *)persistentStoreCoordinator;
-
- //managedObjectModel的初始化赋值函数
- -(NSManagedObjectModel *)managedObjectModel;
-
- //managedObjectContext的初始化赋值函数
- -(NSManagedObjectContext *)managedObjectContext;
-
- //保存MTLModel对象至coredata
- -(BOOL)saveMTLModel:(MTLModel
*)mtlModel
- error:(NSError * __autoreleasing *)error;
-
- //从coredata中提取出MTLModel
- -(MTLModel *)getMTLmodel:(MTLModel
*)mtlModel
- error:(NSError *__autoreleasing *)error;
-
- //+ (NSFetchRequest *)fetchRequest;
- @end
.m文件 [objc] view plaincopyprint?
- #import "Persistence.h"
-
- @implementation Persistence
-
- @synthesize managedObjectContext;
- @synthesize managedObjectModel;
- @synthesize persistentStoreCoordinator;
-
-
- //确定sqlite文件存储路径
- -(NSURL *)storeURL{
- //得到数据库的路径
- // NSString *docs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
- // //CoreData是建立在SQLite之上的,数据库名称需与Xcdatamodel文件同名
- // NSURL *storeUrl = [NSURL fileURLWithPath:[docs stringByAppendingPathComponent:@"CoreData.sqlite"]];
-
- NSArray *documnetDir=NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
- NSString *docDir=[documnetDir objectAtIndex:0];
- NSString *path=[docDir stringByAppendingPathComponent:@"CoreData.sqlite"];
- NSURL *storeURL=[NSURL fileURLWithPath:path];
- return storeURL;
- }
-
-
- //初始化Core Data使用的数据库
- -(NSManagedObjectModel *)managedObjectModel
- {
- if (managedObjectModel != nil) {
- return managedObjectModel;
- }
- return [NSManagedObjectModel mergedModelFromBundles:nil];
- }
-
- //managedObjectModel的初始化赋值函数
- -(NSPersistentStoreCoordinator *)persistentStoreCoordinator
- {
- if (persistentStoreCoordinator != nil) {
- return persistentStoreCoordinator;
- }
-
- NSError *error = nil;
- persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]
- initWithManagedObjectModel:self.managedObjectModel];
- if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
- configuration:nil
- URL:[self storeURL]
- options:nil
- error:&error]) {
- NSLog(@"Error: %@,%@",error,[error userInfo]);
- [NSException raise:@"open failed" format:@"Reason:%@",[error localizedDescription]];
- }
-
- return persistentStoreCoordinator;
- }
-
- //managedObjectContext的初始化赋值函数
- -(NSManagedObjectContext *)managedObjectContext
- {
- if (managedObjectContext != nil) {
- return managedObjectContext;
- }
-
- NSPersistentStoreCoordinator *coordinator =self.persistentStoreCoordinator;
-
- if (coordinator != nil) {
- managedObjectContext = [[NSManagedObjectContext alloc]init];
- [managedObjectContext setPersistentStoreCoordinator:coordinator];
- }
-
- return managedObjectContext;
- }
-
- //保存MTLModel对象至coredata
- -(BOOL)saveMTLModel:(MTLModel
*)mtlModel
- error:(NSError *__autoreleasing *)error{
- //-----Need Add Remove the Entity First START---------
- NSManagedObject *ex
|