我目前正在尝试使用以下代码从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
?
答案 0 :(得分:0)
(来自我上面的评论:)这看起来像NSInMemoryStoreType
的限制,
但是,“核心数据编程指南”的Persistent Store Features中没有记录。
Core data setReturnsDistinctResult not working 的回答中NSXMLStoreType
报告了同样的问题。
提交错误报告可能是值得的。