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
}
}
A의 결과 사전은 다음과 같습니다 :
[12: App.ExhibitionItem(title: "Water Bonsai", image: "waterbonsai.jpg", audio: "exhibit-audio-1", description: "blah blah blah"), 17: App.ExhibitionItem.....
키의 Int를 만들었으므로 정렬 할 수 있었지만 지금까지는 운이 없다는 것을 기대하고있었습니다. 당신은 내가 아주 빨리 새로운 것을 말할 수있을 것입니다. 그래서 관련성이 있다고 생각하는 정보를 제공해주십시오. 감사!
내 생각을 특정하기 위해 필요한 경우, 유형
Array
의root
합니다하거나 수동으로 키를 정렬 순서를 유지하는 유일한 방법은 딕테이션 대신 배열을 사용하는 것입니다. 네리. 사전에있는'Int' 키가 중요하다면'title '옆에있는 형제로 저장할 것입니다. –
배열을 코드로 사전으로 변환하는 것은 쉽지만 사전에 순서를 유지하는 것은 불가능합니다. –
나는 그것에 대해 생각 해왔다.하지만 'ExhibitionItem' 구조체의 일부이기 때문에 정상적인 배열처럼 정렬 할 수는 없을까? –