获取NSInMemoryStoreType的不同值将返回重复项。 NSSQLiteStoreType没有

时间:2014-01-06 13:19:46

标签: ios objective-c core-data

我目前正在尝试使用以下代码从NSInMemoryStoreType商店获取不同的属性:

- (void)fetchDistinctTitles
{
    NSFetchRequest *fetchTitles = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
    [fetchTitles setReturnsDistinctResults:YES];
    [fetchTitles setResultType:NSDictionaryResultType];
    [fetchTitles setPropertiesToFetch:@[@"title"]];

    NSError *error;
    NSArray *fetchedTitles = [self.managedObjectContext executeFetchRequest:fetchTitles error:&error];
    NSLog(@"%@", fetchedTitles);
}

使用NSSQLiteStoreType商店的工作方式与预期一致。相反,使用NSInMemoryStoreType会返回重复的title

以下是我的示例代码,基于Apple的“Master-Detail Application”模板:http://cl.ly/1K001N3e3x1U。在应用程序委托中切换NSPersistentStoreCoordinator的商店类型,并添加一些条目以确定日志中的不同结果。

这是一个已知问题,还是我错过了NSFetchRequest

中的内容

1 个答案:

答案 0 :(得分:0)

(来自我上面的评论:)这看起来像NSInMemoryStoreType的限制, 但是,“核心数据编程指南”的Persistent Store Features中没有记录。

Core data setReturnsDistinctResult not working 的回答中NSXMLStoreType报告了同样的问题。

提交错误报告可能是值得的。