目前我正按照字母顺序对我的NSArray进行排序:
NSArray *tempArr = [dictionaryFinishedProjects keysSortedByValueWithOptions:0 usingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2)
{
BOOL firstImportant = [obj1 hasPrefix:@"!"];
BOOL secondImportant = [obj2 hasPrefix:@"!"];
if(firstImportant && !secondImportant)
return
NSOrderedAscending;
if(secondImportant && !firstImportant)
return
NSOrderedDescending;
return
[obj1 caseInsensitiveCompare:obj2];
}];
我现在遇到的问题是,我还需要一个额外的订单。我想首先显示所有具有字符串@"firstEntry
的条目,然后显示我在上面的代码中显示的顺序。实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
您可以在自定义类中创建方法,如果有的话,可以使用sortedArrayUsingSelector:
方法,也可以使用不同的排序选项创建块,然后将其传递给sortedArrayUsingComparator:
这样的方法:
id sort1 = ^(NSString *obj1, NSString *obj2){
return [obj1 compare:obj2];
};
NSArray *tempArr = [[array allKeys] sortedArrayUsingComparator:sort1];