2011-01-20 39 views
0

我當前的項目確實聚集了大量工作,我想排序的價值之一是在2種口味如何,其中1個值是DEC和1個值是浮動排序一個NSArray

  1. 回來我的第一源將返回0.9/1/1.1

  2. 我的第二源將返回2.349823432/4.93432343

我的問題是2倍

  • 我應該在我的對象 上設置哪種類型以捕獲此值,以便排序 可正常工作。我在問,因爲 我目前解析json並手動設置這些 值。

  • 後值爲 設置什麼是最好的方法來分類w/ 提供的信息?

預先感謝您

回答

1

您可能希望創建一個類來描述值你正在解析,並定義該類中的排序邏輯。一個簡單的例子,

@interface MyClass : NSObject { 
    NSNumber *someNum; 
     NSString *someString; 
... 
} 

@implementation MyClass 

- (NSComparisonResult)compareNums:(MyClass *)myClassObject { 
    return [self.someNum compare:myClassObject.someNum]; 
} 
- (NSComparisonResult)compareStringsDescending:(MyClass *)myClassObject { 
    return -1 * [self.someString compare:myClassObject.someString]; 
} 

...

現在你可以在某些視圖 - 控制做這樣很多MyClass的對象:

NSArray *mySortedArray = [self.myOriginalArray sortedArrayUsingSelector:@selector(compareNums:)]; 

希望這有助於

+0

someNum是一個完整的財產在這個例子中,對嗎?我只問,因爲你認爲自己的關鍵字 – 2011-01-20 15:10:41

0
sortedArray = [array sortedArrayUsingSelector:@selector(compare:)]; 

假設你有數組中NSNumber的,而不是像NSValue左右

相關問題