简单的介绍一下 ios 数据持久化 Core Data 使用
话不多说,直接上图
接下来,在工程中 command+N 新建Core Data 文件
创建成功后,接下编辑Core Data 文件
接下来,给实体添加属性
依照添加的属性来生成相应的Model
User 实体打上勾下一步
工程会自动生成 User 的Model
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface User : NSManagedObject
@property (nonatomic, retain) NSString * username;
@property (nonatomic, retain) NSNumber * age;
@end
#import "User.h"
@implementation User
//dynamic 动态的生成设置或者访问属性的方法
@dynamic username;
@dynamic age;
@end
接下来简单的实现一下往数据库中添加一个信息,要实现这个功能的前提需要mac 或者笔记本中 安装了
#import "ViewController.h"
#import <CoreData/CoreData.h>// 记得导入Core Data 框架
#import "User.h"
#define COREDATA_PATH [NSHomeDirectory() stringByAppendingString:@"/Library/coreData.sqlite"] // 沙盒路径
@interface ViewController ()
{
NSManagedObjectContext *context;//文件管理对象
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *StorePath=[NSHomeDirectory() stringByAppendingString:@"/Library/coreData.sqlite"];
NSLog(@"%@",StorePath);//打印一下数据库文件的沙盒路径
//1.连接并打开数据库
[self OpenDatabase];
//2.加入数据
[self addUser];
}
- (void)OpenDatabase
{
//1.创建数据模型对象
NSURL *moURL=[[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
//数据模型对象
NSManagedObjectModel * managerModel=[[NSManagedObjectModel alloc] initWithContentsOfURL:moURL];
//2.创建本地持久化文件对象
NSPersistentStoreCoordinator *persist=[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managerModel];
/*
NSSQLiteStoreType 以数据库类型存储(还有XML 类型存储)
URL 存储在沙盒里的路径
*/
// NSString *StorePath=[NSHomeDirectory() stringByAppendingString:@"/Library/coreData.sqlite"];
//
NSURL *StoreUrl=[NSURL fileURLWithPath:COREDATA_PATH];
NSError *error=nil;
//将数据对象添加到数据库中 NSSQLiteStoreType 这个是SQLite数据库类型的
[persist addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:StoreUrl
options:nil
error:&error];
if (error) {
NSLog(@"数据库打开失败");
}
//3.创建文件管理对象
context=[[NSManagedObjectContext alloc] init];
//管理本地持久化文件对象
[context setPersistentStoreCoordinator:persist];
}
//添加用户
- (void)addUser
{
//创建模型 实体
//(1)实体的名字
//(2)文件管理对象
User *user=[NSEntityDescription insertNewObjectForEntityForName:@"User" inManagedObjectContext:context];
[email protected]"jack";
[email protected];
//设置到文件管理对象容器中
//(1)NSManagedObject 对象 user->即是它的实体
[context insertObject:user];
//保存到数据库中
BOOL result=[context save:nil];
if (result) {
NSLog(@"添加成功");
}else
{
NSLog(@"添加失败");
}
}
Core Data 就简单介绍到这里了。接下来会持续更新。。