Ios ';隐含使用';自我';关闭;使用';赛尔夫';使捕获语义显式';尝试使用身份验证切换视图控制器时
我目前正在学习Xcode 11.4中的Swift 5。我试图构建一个代码,当按下按钮时,它使用face id对用户进行身份验证。一旦用户通过身份验证,它将切换到不同的视图控制器 目前face id可以正常工作,但之后应用程序崩溃。我在当前行收到此错误: 在结束语中内隐使用“自我”;使用“self.”使捕获语义显式Ios ';隐含使用';自我';关闭;使用';赛尔夫';使捕获语义显式';尝试使用身份验证切换视图控制器时,ios,swift,authentication,viewcontroller,Ios,Swift,Authentication,Viewcontroller,我目前正在学习Xcode 11.4中的Swift 5。我试图构建一个代码,当按下按钮时,它使用face id对用户进行身份验证。一旦用户通过身份验证,它将切换到不同的视图控制器 目前face id可以正常工作,但之后应用程序崩溃。我在当前行收到此错误: 在结束语中内隐使用“自我”;使用“self.”使捕获语义显式 任何帮助都会很好 添加self以从闭包内部精确引用现有视图控制器,如下所示: context.evaluatePolicy(LAPolicy.deviceOwnerAuthentica
任何帮助都会很好 添加
self
以从闭包内部精确引用现有视图控制器,如下所示:
context.evaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, localizedReason: "message") { (good, error) in
if good {
print("good")
self.present(vc, animated: true)
}
else {
print("error")
}
}
因为evaluatePolicy completionhandler是在函数返回后执行的转义闭包,所以需要提供self来进行显式捕获
context.evaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, localizedReason: "message") { (success, error) in
guard success else { return }
let vc = storyboard?.instantiateViewController(identifier: "blue_vc") as! blueViewController
self.present(vc,animated: true)
}
你看到错误信息了吗?它非常清晰,甚至包含修复。
context.evaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, localizedReason: "message") { (success, error) in
guard success else { return }
let vc = storyboard?.instantiateViewController(identifier: "blue_vc") as! blueViewController
self.present(vc,animated: true)
}