答案取決於你的數組中的對象是否數字或串一點。還有各種方法來排列數組(sortUsingDescriptors
,sortUsingComparator
,...)。
NSMutableArray *a = [NSMutableArray arrayWithObjects:@1, @55, @9, @17, nil];
[a sortUsingComparator:^NSComparisonResult(NSNumber *obj1, NSNumber *obj2) {
return -[obj1 compare:obj2];
}];
// Result: 55, 17, 9, 1.
注意減號其中具有逆轉令的效力比較器模塊:
如果你有數字的陣列,可以在例如像這樣的遞減順序進行排序從增加到減少。
如果你有串數組,而你以同樣的方式進行,那麼你會得到你叫什麼「上面10號將開始在一種奇怪的方式訂購」:
NSMutableArray *a = [NSMutableArray arrayWithObjects:@"1", @"55", @"9", @"17", nil];
[a sortUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
return -[obj1 compare:obj2];
}];
// Result: 9, 55, 17, 1.
對象按字符串排序,而不是數字。
的解決方案是使用NSNumericSearch
選項:
NSMutableArray *a = [NSMutableArray arrayWithObjects:@"1", @"55", @"9", @"17", nil];
[a sortUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
return -[obj1 compare:obj2 options:NSNumericSearch];
}];
// Result: 55, 17, 9, 1.
感謝馬丁,得到成功的治療,給了我一些精彩的例子,我用nsuinteger作爲數組裏面我的數據類型和它完美地命令他們。 – SmokersCough
@SmokersCough:好吧,我很高興它有幫助。 –