在获取结果的关系结束时获取唯一对象

aar*_*lls 3 core-data ios

在我的应用程序中,我有两个实体,Page和Annotation.在我的核心数据模型中,他们有一对多的关系:Page <-->> Annotation.

我正在获取Annotation对象,因为我需要应用某些谓词,但最终想要获得与谓词匹配的一组唯一的与谓词匹配的页面.

如何获取一组与fetch返回的Annotations有关系的唯一Page对象?是否有可能在一次获取中执行此操作?我尝试了一些NSDictionaryResultType但却出错了,最终,我想要的是对象,而不是价值观.

Mar*_*rra 7

您不想使用NSDictionaryResultType,因为它不返回对象.您想要做的是在检索到这样的Annotation实例后使用KVC :

NSArray *results = ...; //Your fetch of Annotation objects
NSArray *uniquePages = [results valueForKeyPath:@"@distinctUnionOfObjects.page"];
Run Code Online (Sandbox Code Playgroud)

uniquePages数组将包含您唯一的Page实例集合.