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方法。
     
     

     

  • 相关阅读:
    AWT布局管理器
    聊一聊Java中的各种运算符
    Java中数组操作 java.util.Arrays 类常用方法的使用
    Python中的可变对象与不可变对象、浅拷贝与深拷贝
    【WEB基础】HTML & CSS 基础入门(7)表格
    pycaffe cifar10
    caffe 调试
    caffe Dtype
    caffe 逐步调试
    caffe template
  • 原文地址:https://www.cnblogs.com/jiangshiyong/p/2536615.html
Copyright © 2011-2022 走看看