2

我之前曾问过一个与此类似的问题,但答案似乎不起作用。

我有一本名为 Settings 的字典:

var settings = 字符串:任意

这是通过阅读文本文件填充的 - 一切正常

当我运行println(settings)它时,它会返回填充的字典。

[monsterRate: 1.0, monsterMinSpeed: 10.0, weaponPickupRate: 10.0, weaponPickupAmount: 50.0, goldPerMonster: 10.0, totalMonsters: 10.0, LevelNum: 1.0, monsterMaxSpeed: 15.0]

如果我运行println(settings["monsterMinSpeed"])它返回Optional("10.0")

但是,当我尝试将变量设置为字典包含的值时,它不起作用:

    monsterMinSpeed = (settings["monsterMinSpeed"] as? Double) ?? 0.0
    monsterMaxSpeed = (settings["monsterMaxSpeed"] as? Double) ?? 0.0
    monsterRate = (settings["monsterRate"] as? Double) ?? 0.0
    weaponPickupAmount = (settings["weaponPickupAmount"] as? Double) ?? 0.0
    weaponPickupKills = (settings["weaponPickupKills"] as? Double) ?? 0.0
    goldPerMonster = (settings["goldPerMonster"] as? Double) ?? 0.0

即使字典中有值,它总是使用 0.0,就好像我提供的键不存在一样 - 返回 nil 并因此将变量设置为 0.0

有人可以帮忙吗?

4

1 回答 1

1

这些是以字符串的形式出现的,而不是数字 - 尝试类似:

monsterMinSpeed = (settings["monsterMinSpeed"] as? NSString)?.doubleValue ?? 0.0
于 2015-02-10T22:48:47.367 回答