Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift:else语句中的access变量_Ios_Swift - Fatal编程技术网

Ios swift:else语句中的access变量

Ios swift:else语句中的access变量,ios,swift,Ios,Swift,我试图访问在else中if语句中创建的变量。例如: if let filePath: NSURL = documentDirectory.URLByAppendingPathComponent("myFile.txt"){ 但我无法访问else块中的变量filePath: 大家都知道如何访问else块中的变量filePath吗 我真的很感谢您的帮助我不明白为什么您需要else块中的文件路径变量,因为如果条件不为真,并且如果您要访问,则该变量为零。因此最好只留下一条错误消息,而不带文件路径变量

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

if let filePath: NSURL = documentDirectory.URLByAppendingPathComponent("myFile.txt"){
但我无法访问else块中的变量filePath:

大家都知道如何访问else块中的变量filePath吗


我真的很感谢您的帮助

我不明白为什么您需要else块中的
文件路径
变量,因为如果条件不为真,并且如果您要访问,则该变量为零。因此最好只留下一条错误消息,而不带
文件路径
变量。。。您还可以在此处使用
guard
语句访问变量

   guard let filePath = documentDirectory.URLByAppendingPathComponent("myFile.txt") else {
        continue 
   }

    // continue with filePath 

要澄清为什么您不能:

if let x=foo
语句中,
x
仅在if块内可见。这是因为可以创建
x
时if块运行,但无法创建时,else块将运行(或者如果不存在else块,代码将继续)


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

例如,如果我想打印文件中的文件路径,否则即使使用GuardInes变量也不可用,您就不能使用它。。因为它没有用,因为它给你nil@user2924482我想说你不能。。。所以不要去想这个问题,如果你能以某种方式得到一个错误,变量的值将在
else
块中,因为这是进入
else
块的唯一方法。因此,如果您确实想打印某些内容,只需在其中打印
nil
。只有当
documentDirectory.URLByAppendingPathComponent(“myFile.txt”)
返回一个
非nil
值时,filePath才会初始化并保留一个值。如果它返回
nil
值,将执行
else
块。简单的范围理解。