Развертывание необязательного типа 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
Другие вопросы по тегам