1

我想按作者的姓氏对表格进行排序。目前,数据以核心数据中的字符串形式保存为“FirstName LastName”。核心数据 - 可以使用NSSortDescriptor中的块对TableView进行排序?

我知道核心数据中的自定义选择器超出了Cocoa的范围,并返回'NSInvalidArgumentException', reason: 'unsupported NSSortDescriptor selector: compareToLastName:'这是否也适用于比较器?

下面是我从这个工作似乎完全忽略比较。

// Sort the request 
NSSortDescriptor *sortByType; 
if ([sort isEqualToString:@"author"]) { 
    NSComparator comparisonBlock = ^(id obj1,id obj2) { 
     NSString *obj1B = [[(NSString *)obj1 componentsSeparatedByString:@" "] lastObject]; 
     NSString *obj2B = [[(NSString *)obj2 componentsSeparatedByString:@" "] lastObject]; 
     return (NSComparisonResult) [obj1B compare: obj2B]; 
    }; 
    sortByType = [[NSSortDescriptor alloc] initWithKey:sort ascending:YES comparator:comparisonBlock]; 
} 
else { 
    sortByType = [[NSSortDescriptor alloc] initWithKey:sort ascending:YES]; 
} 

NSSortDescriptor *secondSort = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES]; 
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortByType, secondSort, nil]; 
[fetchRequest setSortDescriptors:sortDescriptors]; 

谢谢!

回答

相关问题