【发布时间】:2015-02-01 18:13:25
【问题描述】:
我正在 Xcode 中构建游戏,并将关卡的详细信息存储在文本文件中,例如Level1.txt、Level2.txt等
我从文本文件中读取数据并将其存储在字典中。 当我尝试将字典中的值分配给全局变量时,它不起作用。
文本文件内容(Level1.txt)
LevelNum:1
weaponPickupRate:10.0
weaponPickupAmount:50.0
monsterMinSpeed:10.0
monsterMaxSpeed:15.0
monsterRate:1.0
totalMonsters:10.0
goldPerMonster:10
全局变量
var settings = [String: Any]()
var monsterMaxSpeed = 0.0
获取关卡详细信息的函数
func GenerateLevel(levelNumber: Int) {
fileName = "level\(levelNumber).txt"
levelPath = "\(NSBundle.mainBundle().resourcePath!)/\(fileName)"
var err: NSError? = NSError()
let s = String(contentsOfFile: levelPath, encoding: NSUTF8StringEncoding, error: &err)
if let content = s {
var array = content.componentsSeparatedByString("\n")
for a in array {
var v = a.componentsSeparatedByString(":")
settings[v[0]] = v[1]
}
}
println(settings) // A
var e = settings["monsterMaxSpeed"]
println(e) // B
monsterMaxSpeed = settings["monsterMaxSpeed"] // C
}
Println(setting) (A) - 打印:
[monsterRate: 1.0, monsterMinSpeed: 10.0, weaponPickupRate: 10.0, weaponPickupAmount: 50.0, goldPerMonster: 10, totalMonsters: 10.0, LevelNum: 1, monsterMaxSpeed: 15.0]
Println(e) (B) 打印:
可选(“15.0”)
这条线不起作用
它显示一个错误并且不允许我构建我的项目。给出的错误是:
'(String, Any)' 不能转换为 'Double'
monsterMaxSpeed = settings["monsterMaxSpeed"]
请有人帮助并建议我需要做什么?
谢谢,
瑞恩
【问题讨论】:
标签: ios xcode swift dictionary double