陣列如果這是在這裏有點混亂,是一個可視化表示:排序由其成員字典的鍵
陣列>對象>詞典>值
這裏的一些方面,如果這有助於:
的數組包含播放列表。每個播放列表都有一個字典。每個字典包含元數據。
我需要通過此元數據對原始字典進行排序。
我一直很難在實現這一點。思考?
[編輯]改變了更高字典到一個數組
陣列如果這是在這裏有點混亂,是一個可視化表示:排序由其成員字典的鍵
陣列>對象>詞典>值
這裏的一些方面,如果這有助於:
的數組包含播放列表。每個播放列表都有一個字典。每個字典包含元數據。
我需要通過此元數據對原始字典進行排序。
我一直很難在實現這一點。思考?
[編輯]改變了更高字典到一個數組
你想用的至少一個NSSortDescriptor
。這基本上是一種表示排序方式的抽象方式。它可以包含一個關鍵路徑(更多關於這一點)或一個函數指針,或其他方式來比較兩個對象。
您可能想要使用它的關鍵路徑。因此,如果您有一個Foo
對象的數組,並且它們的「字典」屬性返回NSDictionary
,並且您希望根據密鑰@"bar"
下的字典中的值對數組進行排序,那麼將創建的排序描述符將是:
[NSSortDescriptor sortDescriptorWithKey:@"dictionary.bar" ascending:YES]
從這裏你可以使用-[NSArray sortedArrayUsingDescriptors]
,並通過它包含此NSSortDescriptor
的數組。
謝謝。這正是我所期待的! – Nosrac 2011-03-29 03:50:30
詞典未排序。你不能「排序字典」。 – 2011-03-29 03:24:05
我想你想排序一個數組。因爲這會比排序字典更有意義。因爲你使用'objectForKey:'方法從一個字典中獲取對象/值,並在一個數組中使用'objectAtIndex:' – Robin 2011-03-29 03:32:06
我已經更新了原始文章以將原始字典更改爲使用數組。 – Nosrac 2011-03-29 03:36:42