我正在尝试访问我在if语句中创建的变量。例如:
if let filePath: NSURL = documentDirectory.URLByAppendingPathComponent("myFile.txt"){
但我无法访问else块中的变量filePath:
你们中的任何人都知道如何访问else块中的变量filePath?
我真的很感谢你的帮助
答案 0 :(得分:3)
我不明白为什么你需要在else块中使用filePath
变量,因为如果条件不是真的它是nil,并且如果你要访问那你就会出错...那么最好留下一个错误信息没有filepath
变量...您也可以在此处使用guard
语句来访问变量
guard let filePath = documentDirectory.URLByAppendingPathComponent("myFile.txt") else {
continue
}
// continue with filePath
答案 1 :(得分:3)
澄清为什么你不能:
在if let x = foo
语句中,x
只能在if块中显示。这是因为if块在可以创建x
时运行,但是当它无法创建时,else块将运行(或者如果不存在其他块,代码将继续运行)。
正如其他人所提到的,您可能需要重新考虑您正在做的事情以及代码的结构。