我正在制作一个Iphone应用程序,并尝试根据用户点击特定按钮对我的获取结果控制器执行排序。当用户单击按钮时,我将下面显示的代码放入,但是我收到错误
- [NSSortDescriptor count]:无法识别的选择器发送到实例0x6bc3250
***因未捕获的异常而终止应用 'NSInvalidArgumentException',原因:' - 。我该如何解决这个问题呢? 我的数据根据用户按钮点击排序?
- (IBAction)btnValue:(id)sender {
self.model.frc_Work.delegate = self;
self.model.frc_Work.fetchRequest.sortDescriptors = [NSSortDescriptor sortDescriptorWithKey:@"Value" ascending:YES];
[NSFetchedResultsController deleteCacheWithName:@"Work"];
NSError *error = nil;
[self.model.frc_Work performFetch:&error];
}
答案 0 :(得分:4)
您应该收到编译器警告您将错误类型的对象分配给获取请求的sortDescriptors
属性,该属性需要NSArray
,而不是NSSortDescriptor
。
您可以这样指定:
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"Value" ascending:YES];
self.model.frc_Work.fetchRequest.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
此属性采用数组的原因是,您可以指定要连续应用于某些键可能具有相同值的值的排序描述符列表(例如,按姓氏排序,然后按姓氏排序)名字相等)。