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) –
很高興工作。我已將我的評論發佈爲答案,因此遇到同一問題的其他人可以更輕鬆地找到答案。如果您發現它有用,請考慮接受答案。 –