我试图在名为“name”的实体属性上获得唯一结果。 为此,我正在使用带有NSFetchedResultsController的Magical Record 事情根本不起作用,我得到了所有结果,但它们并不是独特的结果。
我的代码使其成功:
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"custom == 0"];
[_fetchedResultsController.fetchRequest setReturnsDistinctResults:YES];
[_fetchedResultsController.fetchRequest setResultType:NSDictionaryResultType];
[_fetchedResultsController.fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:@"name"]];
_fetchedResultsController = [MyQuestion fetchAllSortedBy:@"name"
ascending:YES
withPredicate:predicate
groupBy:nil
delegate:self];
return _fetchedResultsController;
}
我也尝试使用本机NSFetchedResultsController方法(没有Magical Record),但是我得到的数据库是损坏的异常,可能是因为我仍然在应用代表上使用Magical Record初始化我的数据。
感谢您的帮助和支持!
答案 0 :(得分:1)
在这种情况下,您要使用的技术是:
因此,在nsmanagedobject上查找名为MR_requestAllSortedBy的类别方法:还有更多的请求助手,但这会让你朝着正确的方向前进。创建提取请求后,设置选项,例如setReturnsDistinctResults。然后,要将其发送回MagicalRecord帮助器/管道,您需要在本地副本中将MR_fetchController:... Method设为public。此方法采用获取请求和其他选项,并且还处理错误处理等。