我在plist中有一些重複的數據,然後將其提取到字典中並顯示在我的應用程序中。唯一的問題是,它需要按照與plist相同的順序,但很明顯,字典不能被排序,並且它是未排序的。那麼,我將如何實現這一目標?排序plist數據
我的plist數據重複這樣
我再轉化[Int : ItemType]
類型的字典,ItemType的是我的數據協議,如:
class ExhibitionUnarchiver {
class func exhibitionsFromDictionary(_ dictionary: [String: AnyObject]) throws -> [Int : ItemType] {
var inventory: [Int : ItemType] = [:]
var i = 0;
print(dictionary)
for (key, value) in dictionary {
if let itemDict = value as? [String : String],
let title = itemDict["title"],
let audio = itemDict["audio"],
let image = itemDict["image"],
let description = itemDict["description"]{
let item = ExhibitionItem(title: title, image: image, audio: audio, description: description)
inventory.updateValue(item, forKey: i);
i += 1;
}
}
return inventory
}
}
這會導致這樣的字典:
[12: App.ExhibitionItem(title: "Water Bonsai", image: "waterbonsai.jpg", audio: "exhibit-audio-1", description: "blah blah blah"), 17: App.ExhibitionItem.....
我希望,因爲我做了關鍵的詮釋我可以分類,但到目前爲止,我沒有運氣。你可能會告訴我很快就會發現,所以請提供你認爲相關的任何信息。謝謝!
我想維持順序的唯一方法是使用數組而不是dictio進制。如果字典中的「Int」鍵很重要,我會將它作爲「title」旁邊的同級存儲。 –
將代碼中的數組轉換爲字典很容易,但在字典中維護順序是不可能的。 –
我一直在想......但是因爲它是'ExhibitionItem'結構的一部分,我不能像普通數組那樣排序嗎? –