在查看写的小项目《你好,新同学》中发现了一个关于数组排序的BUG。
之前我是利用@selector(compare:)的方法来进行排序。但这个方法有个问题就是,他是根据首字符来进行排序,比如字符串"10"总是小于字符串"9"的,这不符合我的要求另外写compare函方法也比较麻烦。于是找了个简单的解决方法,利用NSComparator。
代码修改为:
- NSArray *keys=[[dict allKeys] sortArrayByComparator:^NSComparetor(id obj1,id obj2){
- if([obj1 intValue]>[obj2 intValue])
- return NSOrderedDescending;
- else if([obj1 intValue]<[obj2 intValue])
- return NSOrderedAscending;
- else return NSOrderSame;
- }];
- NSString *addkey=[keys lastObject];
在这里,obj1与obj2为[dict allKeys]数组中的两个项(对于我的程序来说就是两个字符串)。