注: NSPersistentContainer支持的ios最低版本为10.0,过低版本会直接崩溃!
可以写成工具类来使用
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#define kHMCoreDataManager [HMCoreDataManager shareInstance]
@interface HMCoreDataManager : NSObject
@property (nonatomic, strong) NSPersistentContainer *persistentContainer;
+ (HMCoreDataManager *)shareInstance;
- (void)save;
@end
#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 *)persistentContainer {
if (_persistentContainer != nil) {
return _persistentContainer;
}
NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:nil];
_persistentContainer = [[NSPersistentContainer alloc] initWithName:@"sql" managedObjectModel:model];
[_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(@"core data save succed.");
} else {
NSLog(@"core data save failed:%@",error);
}
}