3
Whew ...什麼是標題。所以我有一個NSMutableArray被分配了從API調用中獲取的數據。我無法控制API調用響應的結構,我想按照提供的格式對數組進行排序。 (其它解決方案的歡迎,當然)Sort Objective-c數組,其中包含包含數組的對象
這是一個愚蠢的例子(讓事情變得簡單),但我想排序的陣列可以表示這樣的事情:
myObjects = array( 0 => object( name => @"Jack", favoriteNumbers => object( numbers => array( 0 => 7, 1 => 11, 2 => 6 ) ) ), 1 => object( name => @"Jill", favoriteNumbers => object( numbers => array( 0 => 1, 1 => 2, 2 => 3 ) ) ), 3 => object( name => @"Sally", favoriteNumbers => object( numbers => array( 0 => 68, 1 => 103, 2 => 99 ) ) ) )
我知道我可以簡單地按照類似名稱排序:
NSSortDescriptor *sortDescriptor; sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO] autorelease]; NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; NSArray *sortByDurationArray = [myObjects sortedArrayUsingDescriptors:sortDescriptors]; // the variable "myObjects" holds the array representation from above
但是,我將如何按每個人第一個最喜歡的數字排序數組?
想要的結果會按以下順序對數組排序:Jill,Jack,Sally;因爲吉爾的第一個最喜歡的數字是1,傑克的是7,莎莉的是68.
那麼你是否暗示在我的「顏色」類中我應該創建一個選擇器,例如-compareFavoriteNumberToObject :,它將比較返回NSComparisonResult的兩個「顏色」對象?如果是這樣,我會做這樣的排序數組? [myObjects sortUsingSelector:@selector(compareFavoriteNumberToObject :)]; – 2010-12-07 22:58:06