Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在字典中设置值_Ios_Arrays_Swift_Nsmutabledictionary - Fatal编程技术网

Ios 在字典中设置值

Ios 在字典中设置值,ios,arrays,swift,nsmutabledictionary,Ios,Arrays,Swift,Nsmutabledictionary,我需要访问并替换字典中的项目。我正绞尽脑汁想如何用Swift来做这件事。我加载一个plist,它看起来像这样: <dict> <key>Brynthia</key> <array> <dict> <key>x</key> <integer>389</integer> <key>y</key> &

我需要访问并替换字典中的项目。我正绞尽脑汁想如何用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
389
Y
267
移动
31
1.
30
3.
7.
-1
-1
-1
-1
-1
x
457
Y
275
移动
31
6.
30
0
-1
-1
-1
-1
-1
-1
我需要修改数组的每个字典中的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)
            }
        }
var:[NSMutableDictionary]=[]
var coords:NSMutableDictionary?
var x=0.00
变量y=0.00

对于var i=0;i由于
kings
是一个可变异的Swift数组,您可以使用
coords
上的普通
.setValue
方法修改
coords
,然后将其分配回数组中的适当元素:

coords.setValue(x, forKey: "x")
kings[i] = coords

作为旁注:摆脱Obj-C风格。使用
[String:AnyObject]
iso
NSMutableDictionary
mapDict?[kingdomNames[i]]
之后。这当然很简单。我肯定是想把它复杂化。谢谢