【发布时间】:2015-09-09 15:48:04
【问题描述】:
我正在使用 Swift 2,我正在查看我的代码以查找我正在保护的实例,并且我可能想要使用 guard。这是一个...
var mods : String = ""
let modpath = NSBundle.mainBundle().pathForResource(filename, ofType: "ini", inDirectory: "mods/gamedata")
if modpath?.length > 0 {
mods = try! String(contentsOfFile: modpath!, encoding: NSUTF8StringEncoding)
} else {
mods = ""
}
此代码的目标是将文本文件的内容读入mods。这个文件可能存在也可能不存在,所以我想在尝试读取内容之前测试它是否存在。
这是使用guard 的合适地方吗?它似乎只有else 语法,而不是then 侧,所以你不能直接匹配这个语法。我可以在开始时将 mods 设置为 "" 然后保护读取,但我不清楚这是否真的提高了可读性?
附带说明一下,我发现 String(contentsOfFile) 抛出的异常很奇怪,而 bundle.pathForResource() 只返回一个 nil。我更喜欢后者。
【问题讨论】: