如何快速比较核心数据中同一实体的两个属性值

Posted

技术标签:

【中文标题】如何快速比较核心数据中同一实体的两个属性值【英文标题】:How to compare two attribute values from the same entity in core data with swift 【发布时间】:2018-11-07 12:05:38 【问题描述】:

我有一个具有 2 个属性的核心数据实体,它们可能在每个属性中包含相同的数据。

我如何比较这两个属性以仅使用核心数据和 swift 获取两个属性中包含相同数据的对象。

【问题讨论】:

到目前为止您尝试过什么吗?你熟悉 NSFetchRequest 吗?我们可以假设您阅读了核心数据编程指南中的“Filtering Results” 吗? 我使用 NSFetchRequest 按变量进行过滤,但是我想做的是根据正在获取的同一实体中的另一个属性对其进行过滤。 你试过像“attr1 == attr2”这样的谓词吗? 我是这门语言的新手,我不知道如何做到这一点,你能给我举个例子吗? 【参考方案1】:

有时简单的方法就行了:

 let request:NSFetchRequest<Thing>  = Thing.fetchRequest()
 request.predicate = NSPredicate.init(format: "prop1 == prop2")

或者更现实的例子:

 request.predicate = NSPredicate.init(format: "dateCreated == dateModified")

【讨论】:

以上是关于如何快速比较核心数据中同一实体的两个属性值的主要内容,如果未能解决你的问题,请参考以下文章

核心数据迁移——如何将两个实体合二为一

按两个依赖属性对核心数据实体进行排序

比较两个实体类的属性值工具

两个日期之间实体属性的核心数据总和

C# 实体/集合差异比较,比较两个实体或集合值是否一样,将实体2的值动态赋值给实体1(名称一样的属性进行赋值)

如何对两个不同的核心数据对象进行排序?