TouchID Xcode 7,Swift 2
TouchID with Xcode 7, Swift 2
我不知道如何使用 Xcode 7 使用 Swift 2 来使用 TouchID。这是我遇到问题的部分代码:
override func viewDidLoad() {
super.viewDidLoad()
let auth = LAContext()
var authError: NSError?
auth.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &authError)
}
这应该适用于 iOS 8,但不适用于 Xcode 7 Beta for iOS 9 开发。它给出了这个编译器错误:"Extra Argument 'error' in call",并且突出显示了“&authError”。当我删除额外的参数时,出现编译器错误:"Call can throw, but it is not marked with 'try' and the error is not handled."
do {
try auth.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics)
} catch {
print("Error: \(error)")
}
只要确保处理错误即可。
在 Swift 2 Apple 引入了新的错误处理机制。
如果你看一下方法声明,你会看到:
func canEvaluatePolicy(policy: LAPolicy) throws
它没有 error
参数,但它有一个特殊的词 throws
告诉您可能会抛出的潜在错误。
要处理此类错误,请使用 do/try/catch
表达式:
do {
try auth.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics)
} catch {
// Handle error
}
我不知道如何使用 Xcode 7 使用 Swift 2 来使用 TouchID。这是我遇到问题的部分代码:
override func viewDidLoad() {
super.viewDidLoad()
let auth = LAContext()
var authError: NSError?
auth.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &authError)
}
这应该适用于 iOS 8,但不适用于 Xcode 7 Beta for iOS 9 开发。它给出了这个编译器错误:"Extra Argument 'error' in call",并且突出显示了“&authError”。当我删除额外的参数时,出现编译器错误:"Call can throw, but it is not marked with 'try' and the error is not handled."
do {
try auth.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics)
} catch {
print("Error: \(error)")
}
只要确保处理错误即可。
在 Swift 2 Apple 引入了新的错误处理机制。
如果你看一下方法声明,你会看到:
func canEvaluatePolicy(policy: LAPolicy) throws
它没有 error
参数,但它有一个特殊的词 throws
告诉您可能会抛出的潜在错误。
要处理此类错误,请使用 do/try/catch
表达式:
do {
try auth.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics)
} catch {
// Handle error
}