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之CoreData基本使用以及简单封装

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

CoreData的基本使用

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

CoreData的基本使用

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

iOS CoreData基本架构类

iOS CoreData_基本表的增加

对CoreData的表的增加

iOS 数据持久化之CoreData(一)堆栈与基本概念

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 我的iOS SDK详解专栏,这里你能找到很多iOS 开发入门的文章。 http://blog.csdn.net/co...

iOS 数据持久化之CoreData(二)堆栈建立和基本操作Demo

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS SDK详解专栏 http://blog.csdn.net/column/details/huan...

iOS CoreData的基本用法

基本介绍: CoreData是iOS5之后新出来的的一个框架, 是对SQLite进行一层封装升级后的一种数据持久化方式. 它提供了对象—关系映射的功能, 即能够将OC对象转化 为数据存储到SQLi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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