zoukankan      html  css  js  c++  java
  • CoreData介绍及使用

    1. CoreData数据库简介:

    CoreData 是mac平台和ios平台都有的数据库操作框架(本事不是数据库),一种类似关系数据库的东西,ios平台的coredata的数据库可以配置为sqlite,xml数据库等。

    CoreData提供图形界面创建model,并且可以直接生成object-c类

    CoreData使用NSPredlicate来代替sql语句查询数据库,直接更改数据模型属性保存就可以形成updata操作,删除数据模型就可以删除对应的一行数据,类似与hibernate,完全放弃sql语句,但更加容易学习。

    推荐两篇博客:

    [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解

    http://blog.csdn.net/kesalin/article/details/6739319

    [Cocoa]深入浅出 Cocoa 之 Core Data(2)- 手动编写代码

    http://blog.csdn.net/kesalin/article/details/6746117

    2. 创建数据模型

    在Xcode中可以使用图形界面来创建数据模型,数据模型可以有字符串,日期,数字,data,bool等属性。
    数据模型之间可以创建关联,一对一,一对多,多对多三种关联类型,其中反向关联是CoreData的bug,使用反向关联会导致错误。
    一对多的关联可以指定无序或者有序,有序在ios5.0以后才支持。
    3. CoreData Demo演示
    横扫能够删除改组员。群组列表,在列表显示群组名称,群组头像,组员数量。使用名称搜索群组,使用组员姓名搜索群组。动态监测群组新增,监测组员数量变化。
    组员列表,显示组员名称,组员头像,群组数量。点击组员能够把组员加入其他群组。点击群组数量按钮,能够查看所属群组,能够把该组员从群组中删除。
    4. CoreData 查询
    CoreData使用NSPredicate查询,语法与查询NSArray,NSSet等完全一致,所以较容易掌握。
    CoreData最强大的地方在于可以使用NSPredicate来监测满足一条件的数据的变化,即NSFetchResultsController,当满足NSPredicate的数据发生变化的时候,会触发delegate方法,这点非常有用,使用其他传统数据实现这一点非常麻烦,需要编写触发器(专门的语言,oracle中使用plsql编写触发器)。
    5. 新增数据
    更改数据不需要使用NSPredicate,需要指定新增的数据模型的类名,使用NSEntityDescription的方法然后保存就可以新增数据成功,不需要考虑主键冲突等问题。
    如果使用NSFetchResultsController来监测某个数据,当新增满足这个条件的数据时,会触发NSFetchResultsController的delegate方法。
    6. 更改数据
    更改数据不需要使用NSPredicate,只要把数据模型的属性更改,然后保存就会更改成功。
    如果使用NSFetchResultsController来监测某个数据,当这个数据被更改时,会触发NSFetchResultsController的delegate方法。
     
    7. 删除数据
    更改数据不需要使用NSPredicate, 删除数据使用NSManagedContext中的删除方法就可以完成删除,然后保存就可以删除成功。
    如果使用NSFetchResultsController来监测某个数据,当这个数据被删除时,会触发NSFetchResultsController的delegate方法。
     
     

     

  • 相关阅读:
    Eclipse添加Android library错误的原因
    The primitive Java types
    TFS怎么查找一个用户提交的所有代码
    easyui tabs
    错误 CS0012 类型“xxx”在未引用的程序集中定义。必须添加对程序集“xxxx xxxxx”的引用
    Sql Server 列转逗号隔开的字符串 和 逆转
    DataTable程序分页 不推荐。
    EF执行存储过程并且返回DataSet
    EF运用成ADO.NET操作返回DataSet或者DataTable
    Sql 查询 表名 视图名称等
  • 原文地址:https://www.cnblogs.com/jiangshiyong/p/2536615.html
Copyright © 2011-2022 走看看