CoreData:将MagicalRecord与FetchedResultsController和自定义sortDescriptor一起使用

时间:2013-01-08 13:29:36

标签: objective-c ios core-data magicalrecord

我刚刚开始使用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 个答案:

答案 0 :(得分:0)

今天我遇到了同样的问题。您不能通过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];