Touch ID Local Authentication 产生 Thread 12: EXC error

Touch ID Local Authentication produces Thread 12: EXC error

目前,我有以下代码。

if localAuthenticationContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
        
        localAuthenticationContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString) { success, evaluateError in
            
            if success {
                self.performSegue(withIdentifier: "settingChange", sender: self)                    //TODO: User authenticated successfully, take appropriate action

如果 touch id 被正确验证,代码会执行一个 segue 到另一个视图控制器,但是当我尝试代码时,我得到这个错误:

我在不使用 TouchID 的情况下尝试了代码,它工作正常,但我不知道为什么它在使用 TouchID 时会产生错误。有人可以帮忙吗?

performSegue 操作可能存在问题。所有 UI 更改相关的操作都必须在主队列中执行。将 DispatchQueue 与 main.

一起使用

试试看(注意: 我在 Swift 4 中有解决方案:

if success {

  DispatchQueue.main.async(execute: {
     self.performSegue(withIdentifier: "settingChange", sender: self)
  })

}