1

私はSwiftでXcode 7を使用しており、Touch Idを使用します。canEvaluatePolicy を使用するとエラーが発生するのは私だけです。エラーを理解しました。引数も呼び出します。エラーを管理していないため、電話しない場合にのみエラーになります...エラーとコードは次のとおりです。PS:英語が下手で申し訳ありません。

Error : Extra argument 'error' in call

また

Error : Call can throw, but it is not marked with 'try' and the error is not handled

私のコード:

import Foundation
import UIKit
import LocalAuthentication

class touchid : UIViewController, CLLocationManagerDelegate {

    @IBOutlet weak var lblTouchId: UILabel!

    override func viewDidLoad() {
        self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())

    }




    @IBAction func authenticateWithTouchID(sender: AnyObject) {

        let authenticationObject = LAContext()
        self.pleaseWait()
        if authenticationObject.canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics) {
            authenticationObject.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "Access", reply: {(Bool, authenticationError) in

                if authenticationError != nil {
                // Authentification annulé ou Touch id non disponible
                    self.lblTouchId.text = "annulé ou touch id non disponible"
                    self.clearAllNotice()
                    self.errorNotice("Erreur !")
                }
                else {
                if Bool == true {
                    self.lblTouchId.text = "authentification réussi"
                    self.clearAllNotice()
                    self.successNotice("Succès !")
                }
                else {
                    self.lblTouchId.text = "echec de l'authentification"
                    self.clearAllNotice()
                    self.errorNotice("Erreur !")
                }
                }
                }
            )
        }
    }
}
4

3 に答える 3

1

Using Swift with Cocoa and Objective-Cで述べたようNSErrorに、エラー オブジェクトを返すために使用するすべての Objective-C メソッドはthrow、Swift 2.0 から呼び出されたときに使用されるようになったため、次を使用する必要があります。

do {
    try method()
} catch let error as NSError {
    reportError(error)
}

呼び出しでへの参照を削除しNSErrorますmethod()

于 2015-06-15T14:54:20.733 に答える