swift 尝试调用guard let self时抛出错误

cigdeys3  于 12个月前  发布在  Swift
关注(0)|答案(2)|浏览(91)

到目前为止,我可以用途:

button.tapHandler = { [weak self] _ in 
   guard let self else { return }
   self.dismiss()
}

字符串
但是升级到Xcode 14.3和Swift 5.8之后,它就不再工作了。它抛出一个错误:
在闭包中隐式使用self;使用self.使捕获语义明确
快捷方式在Swift 5.8中不再有效吗?

n8ghc7c1

n8ghc7c11#

Xcode 14.3有一个新特性-在解包self后允许隐式self

3qpi33ja

3qpi33ja2#

使用Xcode 14.3,你不再需要在解包后显式引用self。将代码更改为

button.tapHandler = { [weak self] _ in 
   guard let self else { return }
   dismiss()
}

字符串

相关问题