在查看写的小项目《你好,新同学》中发现了一个关于数组排序的BUG。

之前我是利用@selector(compare:)的方法来进行排序。但这个方法有个问题就是,他是根据首字符来进行排序,比如字符串"10"总是小于字符串"9"的,这不符合我的要求另外写compare函方法也比较麻烦。于是找了个简单的解决方法,利用NSComparator。

代码修改为:

 

 
  1.      NSArray *keys=[[dict allKeys] sortArrayByComparator:^NSComparetor(id obj1,id obj2){  
  2.     if([obj1 intValue]>[obj2 intValue])  
  3.                  return NSOrderedDescending;  
  4.     else if([obj1 intValue]<[obj2 intValue])  
  5.                  return NSOrderedAscending;  
  6.     else return NSOrderSame;  
  7. }];  
  8.     NSString *addkey=[keys lastObject]; 

在这里,obj1与obj2为[dict allKeys]数组中的两个项(对于我的程序来说就是两个字符串)。