在查看寫的小項目《你好,新同學》中發現了一個關於數組排序的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]數組中的兩個項(對於我的程序來說就是兩個字符串)。