如何获取指定的Core Data值?

时间:2013-09-22 16:04:12

标签: xcode core-data nsfetchedresultscontroller

我设置了一个CoreData实体,其中包含三个属性“name”“sex”“job”

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

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

例如:如何仅获取第一个和第三个插入数据以检查其作业 (如下所示,我想找到第一个Sue的工作和第三个Ken的工作,其他我不在乎)

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

姓名:Sue / Bob / Ken / Lily / John

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

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

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

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

谢谢〜

1 个答案:

答案 0 :(得分:0)

使用获取请求偏移属性:

[request setFetchOffset:3]

这是唯一返回的对象add:

[request setFetchLimit:1]

编辑:(经过问题改进后)

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

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

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

如果你有少量的对象,那么获取所有对象并选择你需要的对象就没有问题。如果您有许多对象,则可能无法通过索引而不是按键访问它们。

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