我有一個簡單的NSArray
,其中包含NSNumber
s。按升序對NSArray中的數字進行排序,但在末尾發送零。
我這樣排序按升序排列:
NSSortDescriptor *lowestToHighest = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES];
[_scores sortUsingDescriptors:[NSArray arrayWithObject:lowestToHighest]];
我的問題是,我想包含0
是在末尾,而不是在開始NSNumber
秒。這裏是我可能要排序的類型的數組(包含一些空NSNumber
的只有我的例子):
0
25
12
0
8
0
我的課程的代碼進行排序的數組是這樣的:
0
0
0
8
12
25
我會就像是這樣的:
8
12
25
0
0
0
當然,我可以用0
去除線,並在年底將他們重新排序它手動,但我在尋找最乾淨的小號解決方案可能。
'8,12,0'是按升序還是降序排列?你是如何將'nil'存儲在'NSArray'中的?或者你確定你有'NSNumber'實例嗎?他們不是'NSString'嗎? – 2013-05-02 12:48:35
@ H2CO3對作者如何在NSArray中表示NSNumber的方式設法存儲無值進行了約定 – 2013-05-02 12:50:16
除了數值** 0 **之外,它是遞增順序,發送到數組的末尾。事實上,它們不是「零」對象,而是非初始化的NSNumbers。在調試控制檯中顯示爲** [5] id \t 0x00000000 ** – rdurand 2013-05-02 12:51:11