Развертывание необязательного типа Any из словаря
Ранее я задавал вопрос, похожий на этот, однако ответ, похоже, не работает.
У меня есть словарь под названием Настройки:
var settings = String: Any
Это заполнено чтением текстового файла - все отлично работает
когда я бегу println(settings)
возвращает заполненный словарь, как и должно быть.
[monsterRate: 1.0, monsterMinSpeed: 10.0, рейтинг захвата оружия: 10.0, объем сбора оружия: 50.0, goldPerMonster: 10.0, всего монстров: 10.0, LevelNum: 1.0, maxSaxSpeed: 15.0]
Если я бегу println(settings["monsterMinSpeed"])
возвращает опционально ("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, как будто ключи, которые я предоставляю, не существуют - возвращая ноль и, следовательно, устанавливая переменную в 0.0
Может ли кто-нибудь помочь, пожалуйста?
1 ответ
Они появляются как строки, а не числа - попробуйте что-то вроде:
monsterMinSpeed = (settings["monsterMinSpeed"] as? NSString)?.doubleValue ?? 0.0