coredata 封装
来源:互联网 发布:linux u盘启动盘工具 编辑:程序博客网 时间:2024/05/16 08:49
可以作为工具类来封装
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface CoredataManager : NSObject
@property (nonatomic) NSManagedObjectContext* managedObjectContext;
@property (nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@property (nonatomic) NSManagedObjectModel *managedObjectModel;
+ (CoredataManager *)shareInstance;
- (void)save;
@end
#import "CoredataManager.h"
@implementation CoredataManager
+ (CoredataManager *)shareInstance {
static CoredataManager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[CoredataManager alloc] init];
});
return manager;
}
- (NSManagedObjectContext *)managedObjectContext {
// Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.)
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (!coordinator) {
return nil;
}
_managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
return _managedObjectContext;
}
- (NSManagedObjectModel *)managedObjectModel {
// The managed object model for the application. It is a fatal error for the application not to be able to find and load its model.
if (_managedObjectModel != nil) {
return _managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"CoredataSample" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return _managedObjectModel;
}
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
// The persistent store coordinator for the application. This implementation creates and returns a coordinator, having added the store for the application to it.
if (_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}
// Create the coordinator and store
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
//database auto upgrade support
NSDictionary *options = @{
NSMigratePersistentStoresAutomaticallyOption : @YES,
NSInferMappingModelAutomaticallyOption : @YES
};
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"CoredataSample.sqlite"];
NSError *error = nil;
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return _persistentStoreCoordinator;
}
- (NSURL *)applicationDocumentsDirectory {
// The directory the application uses to store the Core Data store file. This code uses a directory named "lisaliu.com.CoredataSample" in the application's documents directory.
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
- (void)save {
NSError *error;
if (![_managedObjectContext save:&error]) {
NSLog(@"save datas failed!");
} else {
NSLog(@"save datas succed!");
}
}
- CoreData 封装
- CoreData封装
- coredata 封装
- CoreData 基本操作方法封装
- CoreData 基本操作方法封装
- 二次封装CoreData
- CoreData封装使用
- CoreData封装工具类
- 封装CoreData数据库
- iOS CoreData简单封装
- CoreData封装类MagicalRecord的使用
- iOS数据存储之CoreData封装MagicalRecord
- CoreData
- CoreData
- CoreData
- CoreData
- CoreData
- CoreData
- RecyclerView Adapter 封装
- Spring读取properties文件出现乱码的解决方法
- BZOJ 1058: [ZJOI2007]报表统计 STL 维护全局和局部最优值
- angular.foreach 循环方法使用指南
- 常用命令行
- coredata 封装
- 石子合并(一)
- (转)GitHub上README写法暨GFM语法解读
- Linux 常用命令 之 http请求命令 curl
- oralce与mysql分别获取当前系统时间
- 数组指针和指针数组的区别
- C++ STL : advance
- CentOS7安装单机版Hadoop2.7.3
- 配置Oracle 11g Active Dataguard