如何获取指定的 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 值? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章