如果陣列始終包含其他數組,而最裏面的數組的第一個元素總是包含數字的字符串,你可以使用的NSMutableArray方法sortUsingComparator排序的數組:
[array sortUsingComparator: ^(NSArray* obj1, NSArray* obj2)
{
int value1 = [obj1[0] integerValue];
int value2 = [obj2[0] integerValue];
if (value1==value2)
return NSOrderedSame;
else if (value1 < value2)
return NSOrderedAscending;
else
return NSOrderedDescending;
}
];
在sortUsingComparator您提供了一組代碼,sort方法用它來比較數組中的對象對。該塊使用標準的typedef NSComparator,它將2個對象作爲參數並返回一個NSComparisonResult類型的值。
如果數組中的所有對象都不是字符串數組,則上面的代碼可能會崩潰。 (實際上,如果每個組件陣列的第一個元素是NSNumber,那麼它會起作用,因爲NSNumber也響應integerValue消息。)
如果您要在非常受控制的環境中使用此代碼,您可以確保您正在排序的數據是格式良好的,它應該按照書面形式工作。如果數組中的對象有可能是不同的類型或空的,或者它們的第一個元素不會響應integerValue消息,那麼您應該添加錯誤檢查代碼。
你可以展示你到目前爲止已經嘗試過什麼,哪些不起作用? –
你是否總是在你的mutableArray中添加數組? – shinyuX
順便說一句 - 第一個值不是數字,它是一個字符串。 – rmaddy