我在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'结构的一部分,我不能像普通数组那样排序吗? –