我有这两个核心数据实体:
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"]];
现在反过来说,联系人不是唯一的(这是唯一的(联系人,日期)对),但结果是排序的。
我无法弄清楚如何同时拥有唯一和排序的联系人。 谢谢你的帮助。
答案 0 :(得分:0)
使用returnsDistinctResults
仅获取未分类的不同结果。然后使用sortedArrayUsingDescriptors:
对结果进行排序。