중첩 된 사전에서 int를 잡으려고합니다. 그러나내 사전 항목이 계속 0을 반환하는 이유는 무엇입니까? 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,
)
}
를 다음과 같이 내 코드는 결과가 나는 이것이 올바른 파일 경로 것이 확실한 경우 0을 높이 유지, 그래서 왜 올바른 정수를 표시하지 않습니다? 아래는 내가 움켜 잡고있는 plist 길입니다. 이 문제에 대한 도움은 크게 감사하겠습니다.
<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/>
디버거를 사용하고'dfs'와'dfs [0]'과'dfs [0] [ "stats "]'등 – rmaddy
init에'print (dict)'를 추가 할 수도 있습니다. '[ "forms": [[ "stats": [ "def": 49, "atk": 49]]]]'를 출력해야합니다. – vacawama
"형태"<__ NSCFArray 0x170266400> ( { 통계 = { 공격력 = 49 데프 = 49 }; – user4938361