1
我试图在我的应用中实现触摸ID。 我得到触摸ID的工作,但它需要10 - 15秒才被推到下一个Viewcontroller。 我已经搜索了关于该主题,似乎解决方案是在主线程中运行此。 然后我改变了我的代码来运行它作为主线程(我认为),但问题仍然存在。 任何人都可以看到最新的错误?触摸ID IOS 10需要10 - 15秒才能做出响应
func logMeIn(){
performSegue(withIdentifier: "notesVC", sender: self)
}
@IBAction func loginButton(_ sender: Any) {
let context:LAContext = LAContext()
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil){
context.evaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, localizedReason: "Log in", reply: { (wasSuccessful, error) in
if wasSuccessful{
OperationQueue.main.addOperation({() -> Void in })
self.logMeIn()
}
else {
self.view.backgroundColor = UIColor.red
}
})
}
}
}
这是不是你运行的东西主线程。你必须做'DispatchQueue.main.async {//写你想在主线程上运行的代码}'。或者,如果你想坚持使用'OperationQueue',你仍然需要在** addOperation'关闭内部移动所有需要在主线程**上运行的代码。 –
非常感谢。当我这样做的时候工作正常:如果wasSuccessful OperationQueue.main.addOperation({() - > self.logMeIn()}中的void) –
很高兴工作。我已将我的评论发布为答案,因此遇到同一问题的其他人可以更轻松地找到答案。如果您发现它有用,请考虑接受答案。 –