Ich versuche, ein int aus einem verschachtelten Wörterbuch zu greifen. Mein Code ist wieWarum gibt mein Wörterbuchartikel 0 zurück? Swift
convenience init(fromDict dict: [String:Any]) {
let dfs = dict["forms"] as? [[String :[String:Any]]]
self.init(
atk: dfs?[0]["stats"]?["atk"] as? Int ?? 0,
def: dfs?[0]["stats"]?["def"] as? Int ?? 0,
)
}
jedoch folgt, ist das Ergebnis Aufdrehen hält 0. ich sicher wissen, dass dies der richtige Dateipfad ist, also warum ist es nicht die richtige ganze Zahl angezeigt wird? Unten ist der Plistenweg, den ich ergreife. Jede Hilfe in dieser Angelegenheit wird sehr geschätzt.
<array>
<dict>
<key>forms</key>
<array>
<dict>
<key>stats</key>
<dict>
<key>atk</key>
<integer>49</integer>
<key>def</key>
<integer>49</integer>
</dict>
</dict>
</array>
</dict>
<array/>
Verwenden Sie den Debugger und sehen Sie den Wert von 'dfs' und' dfs [0] 'und' dfs [0] ["stats "]', etc. – rmaddy
Sie könnten auch ein 'print (dict)' in Ihrem init hinzufügen. Es sollte '[" Formen "drucken: [[" stats ": [" def ": 49," atk ": 49]]]]]. – vacawama
"Formen": <__ NSCFArray 0x170266400> ( { Statistiken = { atk = 49; def = 49; }; – user4938361