如何获取指定的 CoreData 值? [关闭]

Posted

技术标签:

【中文标题】如何获取指定的 CoreData 值? [关闭]【英文标题】:How to fetch CoreData value specified? [closed] 【发布时间】:2013-09-22 16:04:11 【问题描述】:

我用三个属性“name”“sex”“job”设置了一个CoreData实体

我在其中存储了 5 个数据,并想用它们来比较他们的工作。 (每个数据包含“姓名”“性别”“工作”)

我知道如何按顺序获取它们(按插入时间排序),但我不知道如何只获取其中一个?

ex:如何只获取第一个和第三个插入数据来检查他的工作 (像下面这样,我想找第一个Sue的工作和第三个Ken的工作,其他的我不关心)

============================

姓名:苏/鲍勃/肯/莉莉/约翰

性别:W / M / M / W / M

工作:经理/职员/职员/职员/助理经理

===========================================

请给我一些建议或示例代码~

谢谢~

【问题讨论】:

按什么排序?为什么你只想获取第三个项目?听起来您可能错误地解决了这个问题,请尝试解释更多有关您正在尝试做的事情。 什么标准会产生您希望获得的数据? (不能只说第三个数据!) 很抱歉我的英语不好,我试着清楚地解释我的问题。 【参考方案1】:

使用获取请求偏移属性:

[request setFetchOffset:3]

要使其成为唯一返回的对象,请添加:

[request setFetchLimit:1]

编辑:(问题细化后)

您不能通过索引访问多个对象的数据(除非它们按照您定义的顺序是连续的)。

您需要一种方法(键)来仅识别您需要的对象(如果您的 name 属性是唯一的/键,您可以在这种情况下使用它)。您始终可以使用托管对象 ID 来唯一标识托管对象

如果您有感兴趣的对象的对象 ID,则只需使用如下谓词获取它们:[NSPredicate predicateWithFormat:@"SELF IN %@",objectIDs]。 如果您通过另一个键标识您的对象,请定义一个谓词,该谓词将仅获取您这些项目,例如:[NSPredicate predicateWithFormat:@"name IN %@",@[@"Sue",@"Ken"]] 您可以添加一个属性来标记您需要的对象(BOOL 属性)并用它定义您的谓词。

如果您有少量对象,那么获取所有对象并选择您需要的对象并没有真正的问题。如果您有很多对象,通过索引而不是键访问它们可能不是要走的路。

如果您需要访问这些项目,因为用户选择了它们,而不是保存它们的索引,而是保存它们的对象 ID 并通过它访问它们。

【讨论】:

好的!明白了,谢谢~

以上是关于如何获取指定的 CoreData 值? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CoreData-Entities 获取一些值到代码中

jQuery如何获取指定的属性值

CoreData故障——如何获取数据

如何使用临时对象 CoreData?

如何从coredata中的实体获取过滤数据

SwiftUI 中的 CoreData:如何清楚地获取属性?