2012-03-06 110 views
0

我想排序数组NSString的的:NSArray的排序:

"Page_1", 
"Page_10", 
"Page_11", 
"Page_12", 
"Page_13", 
"Page_14", 
"Page_15", 
"Page_16", 
"Page_17", 
"Page_18", 
"Page_19", 
"Page_2", 
"Page_20", 
"Page_21", 
"Page_22", 
"Page_23", 
"Page_24", 
"Page_3", 
"Page_4", 
"Page_5", 
"Page_6", 
"Page_7", 
"Page_8", 
"Page_9" 

,但我不断收到一个错误与此代码:

NSArray* sortedArray = [currentViews sortedArrayUsingSelector:@selector(compare:NSNumericSearch)]; 

甚至不知道这是采取正确的处理方法,看着NSArray文档让我觉得我应该用比较器。任何帮助,将不胜感激。

回答

2

你确实需要一个比较器,因为你想要排序的实际上是一个NSString,而不是一个NSNumber。

-1

您无法修复@selector中的参数 - @selector(compare:NSNumericSearch)正在寻找一种方法compare:NSNumericSearch而且不存在!

您可以使用一个比较器来调用正确的方法进行比较:

NSArray *sortedArray = [currentViews sortedArrayUsingComparator:(NSComparator)^(NSString *a, NSString *b) 
         { 
          return [a compare:b options:NSNumericSearch]; 
         } 
         ];