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