核心数据NSFetchRequest排序了唯一的结果

时间:2014-08-14 15:16:10

标签: ios sorting core-data nsfetchrequest

我有这两个核心数据实体:

1)联系人:name / ... / history(与'Event'实体的许多关系)

2)事件:日期/联系人(与“联系人”实体的一个关系)

联系是历史的反面(反之亦然)

现在我想要检索按日期属性排序的所有事件的联系人属性,而不需要联系重复项。

我尝试过这两种方法但没有成功:

// This is a fetch request for the 'Event' entity
NSFetchRequest *contactsRequest = ...

1)

[contactsRequest setPropertiesToFetch:@[@"contact"]];
[contactsRequest setReturnsDistinctResults:YES];
[contactsRequest setResultType:NSDictionaryResultType];
[contactsRequest setSortDescriptors:@[[[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO]]];

此处联系人是唯一的,但排序描述符只是被忽略,因为我没有获取'date'属性。

2)所以我将第1行更改为

[contactsRequest setPropertiesToFetch:@[@"contact", @"date"]];

现在反过来说,联系人不是唯一的(这是唯一的(联系人,日期)对),但结果是排序的。

我无法弄清楚如何同时拥有唯一和排序的联系人。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

使用returnsDistinctResults仅获取未分类的不同结果。然后使用sortedArrayUsingDescriptors:对结果进行排序。