CoreData:将 MagicalRecord 与 FetchedResultsController 和自定义 sortDescriptor 一起使用
Posted
技术标签:
【中文标题】CoreData:将 MagicalRecord 与 FetchedResultsController 和自定义 sortDescriptor 一起使用【英文标题】:CoreData: Use of MagicalRecord with FetchedResultsController and a custom sortDescriptor 【发布时间】:2013-01-08 13:29:35 【问题描述】:我刚刚开始使用MagicalRecord library,以便更轻松地使用 CoreData。我正在使用 FRC,但不知道如何使用自定义 sortDescriptor 进行设置,例如
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"someAttribute"
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)];
目前我检索 FRC 的电话是这样的:
_fetchedResultsController = [Language MR_fetchAllSortedBy:@"someAttribute"
ascending:YES
withPredicate:nil
groupBy:nil
delegate:self];
似乎我正在寻找一种“简单”地将自定义选择器添加到 MR_fetchAllSortedBy 的方法。比如:
_fetchedResultsController =
[Language MR_fetchAllSortedBy:@"someAttribute"
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)
withPredicate:nil
groupBy:nil
delegate:self];
谁能给我一些关于如何实现这一目标的指示?可以使用类别吗?
提前致谢,
乔斯。
【问题讨论】:
【参考方案1】:我今天遇到了完全相同的问题。您无法通过 MR_FindAll 方法设置自定义排序描述符,但您可以创建自己的获取请求,同时仍然利用 Magical Records 样板代码:
NSFetchRequest *fetchRequest = [Sites MR_createFetchRequest];
fetchRequest.sortDescriptors = @[[[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]];
self.sitesArray = [NSManagedObject MR_executeFetchRequest:fetchRequest];
【讨论】:
以上是关于CoreData:将 MagicalRecord 与 FetchedResultsController 和自定义 sortDescriptor 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
CoreData (MagicalRecord) 返回错误的值
(CoreData) MagicalRecord 突然停止持久保存
在 TodayExtension 中使用 MagicalRecord (CoreData)
CoreData(MagicalRecord) 获取保存的对象