以下の関数でFace IDかTouch IDが成功したか取得しようとしています
func authenticate() -> Bool{
let context = LAContext()
var error: NSError?
guard context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else {
return false
}
var returnValue = false
let reason = "Face ID authentication"
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason)
{
isAuthorized, error in
guard isAuthorized == true else {
return print(error)
}
returnValue = true
print("success")
}
return returnValue
}
ただし、このコードで成功した場合でも、returnValue = true
後で渡されるをスキップし、false が返されます。なぜこれが起こるのですか?このコードを修正して、想定どおりに機能させるにはどうすればよいですか?
上記のコードは、この人が見ていた場合に備えて、このリンクからのもの です。ありがとうございます。