114 CoreData基本使用

原创 2015年11月19日 19:06:45

1.创建模型文件和实体类

1>添加模型文件:
模型文件
2>添加实体类:
实体类
3>添加实体和基本介绍:
基本介绍

2.初始化CoreData:

- (void)setUpCoreData {
    //加载模型文件,一个模型文件相当于存储表的容器,模型文件中有实体,相当于有表,总之相当于加载表
    NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:nil];

    //添加持久化存储库,负责将模型文件中的表持久化到数据库中
    NSPersistentStoreCoordinator *store = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];

    //生成数据库位置
    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"person.sql"];

    //生成本地数据库,并将模型文件中的表创出来
    [store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:path] options:nil error:nil];

    //生成上下文
    NSManagedObjectContext *context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];

    //将上下文关联到持久化存储库
    context.persistentStoreCoordinator = store;
    _context = context;
}

3.insert:

-(void)addPerson{
    //用实体描述类生成一个实体对象,就是在Person表中生成一个记录
    Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:_context];
    person.name = @"hehe";

    [_context save:nil];

    NSLog(@"%@",NSHomeDirectory());
}

4.read:

-(void)readPerson{
    //查询的时候需要对某个实体进行请求
    NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];

    //可以设置过滤条件
    NSPredicate *pre = [NSPredicate predicateWithFormat:@"name = %@",@"hehe"];
    request.predicate = pre;

    //当有多笔数据的时候可以设置排序,对某个属性进行排序,ascending控制升序还是降序,YES是降序
    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];
    //接收的是一个sort数组
    request.sortDescriptors = @[sort];

    NSArray *persons = [_context executeFetchRequest:request error:nil];

    for (Person *p in persons) {
        NSLog(@"%@",p.name);
    }
}

5.update:

-(void)updatePerson{
    //要执行update,要先查询数据,然后对数据进行更改,再save即可
    NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
    NSArray *persons = [_context executeFetchRequest:request error:nil];

    for (Person *p in persons) {
        //这样直接更改对象,然后再save即可
        p.name = @"hahaha";
    }
    [_context save:nil];

}

6.delete:

-(void)deletePerson{
    //要执行update,要先查询数据,然后对数据进行delete
    NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
    NSArray *persons = [_context executeFetchRequest:request error:nil];

    for (Person *p in persons) {
        //这样直接删除,然后再save即可
        [_context delete:p];
    }
    [_context save:nil];
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

CoreData的基本使用

  • 2014年07月29日 11:59
  • 145KB
  • 下载

iOS CoreData的基本使用

1.使用CoreData,必须添加CoreData框架 2.新建DataModel: Xcode-File-New-Core Data-Data Model, 文件名随便取,这里用Model命名 ...

IOS对象关系映射(ORM)之coreData框架的学习——(一)基本使用

因为Core Data比较复杂,所以我就先学习其操作用法如下: 1、新建工程,在工程根目录下新建文件或Command+n  在IOS下选择点击Core  Data,在右面选择Data Model新建实...

CoreData工程创建和基本使用(Xcode7)

最近项目里用到了CoreData,总结一下CoreData的使用注意事项吧: 首先创建一个含CoreData的工程(Xcode7.2环境): 和新建一个普通Product一样,只不过需要注意记得把...
  • yukooo
  • yukooo
  • 2016年05月13日 13:52
  • 519

CoreData基本使用

Core Data入门 分类: iOS基础2013-02-01 17:26 6608人阅读 评论(2) 收藏 举报 Core DataiosiOSIOS数据存取数据库数据持久化 ...

CoreData的基本使用

概述:把对象存储进CoreData,大概是这个情况: 那么问题来了: 1.哪设置存储文件路径(full path)? 2.1.关于UIManagedDocument 1.1Creati...

CoreData的基本使用

上一章节讲过,对数据的所有操作都是在NSmanagedObject

coredata的基本使用总结(一)

大概的关系如下图:

iOS之CoreData基本使用以及简单封装

CoreData CoreData数据持久化框架是Cocoa API的一部分,首次在iOS5版本中出现,它允许按照实体-属性-值模式组织数据,并以XML,二进制文件或者SQLite数据文件的格式持久化...

iOS coredata数据库的基本使用

1.使用coredata我们要了解她的操作模式,coredata所进行的操作是以对象为基准,你想用coredata就必须创建与之对应的模型类 2.接下来便是创建coredata,第一种创建项目的时候我...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:114 CoreData基本使用
举报原因:
原因补充:

(最多只允许输入30个字)