Core Data 使用

来源:互联网 发布:信用卡账单生成软件 编辑:程序博客网 时间:2024/06/05 14:36

简单的介绍一下 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];
    user.username=@"jack";
    user.age=@19;
    
    //设置到文件管理对象容器中
    //(1)NSManagedObject 对象 user->即是它的实体
    [context insertObject:user];
    //保存到数据库中
    BOOL result=[context save:nil];
    
    if (result) {
        
        NSLog(@"添加成功");
    }else
    {
        NSLog(@"添加失败");
    }
    
}


最终结果:



Core Data 就简单介绍到这里了。接下来会持续更新。。


1 1
原创粉丝点击