swift:在else语句中访问变量

时间:2016-05-27 04:42:10

标签: ios swift

我正在尝试访问我在if语句中创建的变量。例如:

if let filePath: NSURL = documentDirectory.URLByAppendingPathComponent("myFile.txt"){

但我无法访问else块中的变量filePath:

enter image description here 你们中的任何人都知道如何访问else块中的变量filePath?

我真的很感谢你的帮助

2 个答案:

答案 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块将运行(或者如果不存在其他块,代码将继续运行)。

正如其他人所提到的,您可能需要重新考虑您正在做的事情以及代码的结构。