iOS Swift 在字典中设置值
iOS Swift Setting Values In a Dictionary
我需要访问并替换字典中的项目。在 Swift 中,我很难思考如何做到这一点。我加载了一个看起来像这样的 plist:
<dict>
<key>Brynthia</key>
<array>
<dict>
<key>x</key>
<integer>389</integer>
<key>y</key>
<integer>267</integer>
<key>moves</key>
<array>
<integer>31</integer>
<integer>1</integer>
<integer>30</integer>
<integer>3</integer>
<integer>7</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
</array>
</dict>
<dict>
<key>x</key>
<integer>457</integer>
<key>y</key>
<integer>275</integer>
<key>moves</key>
<array>
<integer>31</integer>
<integer>6</integer>
<integer>30</integer>
<integer>0</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
</array>
</dict>
</array>
</dict>
我需要修改数组的每个字典中的 x 和 y 值。我用来阅读它们的代码是:
var kings:[NSMutableDictionary] = []
var coords:NSMutableDictionary?
var x = 0.00
var y = 0.00
for var i=0;i<4;i++ {
kings=mapDict?.objectForKey(kingdomNames[i]) as! [NSMutableDictionary]
for var loc=0;loc<kings.count;loc++ {
coords = kings[i]
x=coords!.valueForKey("x")
y=coords!.valueForKey("y")
x=x * Double(ratioWidth)
y=y * Double(ratioHeight)
}
}
我相信有更好的方法可以做到这一点,但它确实有效。所以我的问题是如何将 x 和 y 值放回字典中?我知道如何通过引用它的键来更新一个值,但是当我需要引用的字典是数组中的一个元素时,我不确定该怎么做。
顺便说一句,这不是家庭作业。
因为kings
是一个可变的Swift数组,你可以在coords
上使用正常的.setValue
方法来修改coords
然后赋值回来到数组中的正确元素:
coords.setValue(x, forKey: "x")
kings[i] = coords
我需要访问并替换字典中的项目。在 Swift 中,我很难思考如何做到这一点。我加载了一个看起来像这样的 plist:
<dict>
<key>Brynthia</key>
<array>
<dict>
<key>x</key>
<integer>389</integer>
<key>y</key>
<integer>267</integer>
<key>moves</key>
<array>
<integer>31</integer>
<integer>1</integer>
<integer>30</integer>
<integer>3</integer>
<integer>7</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
</array>
</dict>
<dict>
<key>x</key>
<integer>457</integer>
<key>y</key>
<integer>275</integer>
<key>moves</key>
<array>
<integer>31</integer>
<integer>6</integer>
<integer>30</integer>
<integer>0</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
<integer>-1</integer>
</array>
</dict>
</array>
</dict>
我需要修改数组的每个字典中的 x 和 y 值。我用来阅读它们的代码是:
var kings:[NSMutableDictionary] = []
var coords:NSMutableDictionary?
var x = 0.00
var y = 0.00
for var i=0;i<4;i++ {
kings=mapDict?.objectForKey(kingdomNames[i]) as! [NSMutableDictionary]
for var loc=0;loc<kings.count;loc++ {
coords = kings[i]
x=coords!.valueForKey("x")
y=coords!.valueForKey("y")
x=x * Double(ratioWidth)
y=y * Double(ratioHeight)
}
}
我相信有更好的方法可以做到这一点,但它确实有效。所以我的问题是如何将 x 和 y 值放回字典中?我知道如何通过引用它的键来更新一个值,但是当我需要引用的字典是数组中的一个元素时,我不确定该怎么做。
顺便说一句,这不是家庭作业。
因为kings
是一个可变的Swift数组,你可以在coords
上使用正常的.setValue
方法来修改coords
然后赋值回来到数组中的正确元素:
coords.setValue(x, forKey: "x")
kings[i] = coords