Core Data 简单查询、

本文介绍了Core Data在iOS开发中的数据查询,包括使用NSFetchRequest创建模板、计数、计算逻辑和排序。通过编辑器创建Fetch Template,设置不同ResultType,如NSCountResultType用于计数,DictionaryResultType实现计算,ManagedObjectIDResultType获取唯一标识。同时,文章讨论了如何利用NSSortDescriptor进行排序,以及NSPredicate在查询中的应用。
摘要由CSDN通过智能技术生成

简单的查询通过创建 NSFetchRequest 来从 CoreData 中取得数据。

下面展示四种查询数据的方式:

    //1
    let fetchRequest1 = NSFetchRequest()
    let entity = NSEntityDescription.entityForName("Person", inManagedObjectContext: managedObjectContext)! 
    fetchRequest1.entity = entity
第一种方法通过默认初始化`NSFetchRequest`,从 managedContext 来创建 Person 类的 EntityDescription,然后设置fetchRequest的entity来完成。

    //2
    let fetchRequest2 = NSFetchRequest(entityName: "Person")

第二种方法可以在初始化NSFetchRequest的时候传入EntityName来完成,这是一种便捷的快速方法,在init的时候就制定了Entity。
“`swift
//3
let fetchRequest3 = managedObjectModel.fetchRequestTemplateForName(“peopleFR”)

第三种通过调用`managedObjectModel`的`.fetchRequestTemplateForName`方法来获取 NSFetchRequest。在Xcode的 Data Model Editor 界面中可以手动设置一些针对用户需求常用的fetch属性,可以使用这种方法来快速调用。
    ```swift
    //4
    let fetchRequest4 = managedObjectModel.fetchRequestFromTemplateWithName("peopleFR", substitutionVariables: ["NAME" :"Ray"])

第四种基于第三种,但是会在第三种的基础上使用substitutionVariables进行再次的筛选。


在Editor上创建 Fetch Template

在 Data Model Editor 界面上长时间按住 Add Entity 的那个按钮,选择Add Fetch Request

之后如果是查询一个实体的全部数据,就吧下拉框选为目标查询的实体。

几个小点:
* 从 Editor 模板中取得 FetchRequest 的时候必须从 ManagedObjectModel 中取。

  • 构建的 CoreDataStack 类中只应该有 ManagedContext 是 Public 的,其余的都应该是 Private。

  • NSManagedObjectModel.fetchRequestTemplateForName()的参数必须跟 Editor 中的保持一致。

NSFetchRequest 神奇の存在

在 CoreData 框架中,NSFetchRequest 就像一把多功能的瑞士军刀,你可以批量获取数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值