2017-11-04 11 views
2

Swiftで書かれたiOSアプリケーションのログインを実装するためにAWS Mobile Hubを使用しています。今週までは完璧に動作していましたが、Xcode 9.1にアップデートするといくつかのビルドエラーが発生しました。 2つのエラーが残っています。両方ともプロトコルに特化した呼び出しを伴います。 'AWSSignInDelegate'および 'AWSognitoIdentityPasswordAuthentication'。iOS AWSプロトコルのエラータイプがパラメータの場合、プロトコルが適合しない

extension SignInVC: AWSSignInDelegate 
{ 
    func onLogin(signInProvider: AWSSignInProvider, result: Any?, error: Error?) 
    { 
     //Code 
    } 
} 

extension SignInVC: AWSCognitoIdentityPasswordAuthentication 
{ 
    func getDetails(_ authenticationInput: AWSCognitoIdentityPasswordAuthenticationInput, passwordAuthenticationCompletionSource: AWSTaskCompletionSource<AWSCognitoIdentityPasswordAuthenticationDetails>) 
    { 
     //Code 
    } 

    func didCompleteStepWithError(_ error: Error?) 
    { 
     //Code 
    } 
} 

エラー:

Type 'SignInVC' does not conform to protocol 'AWSSignInDelegate'

Candidate has non-matching type '(AWSSignInProvider, Any?, Error?) ->()'

Type 'SignInVC' does not conform to protocol 'AWSCognitoIdentityPasswordAuthentication'

Candidate has non-matching type '(Error?) ->()'

私がこれまで持っているもの: エラーが唯一の "エラー" として迅速なタイプを含む方法に起こりますパラメータ。上記の 'getDetails'呼び出しは、他の2つのメソッドと同様にエラーをスローしません。ここ

同様の質問: Cannot conform to STPAddCardViewControllerDelegate since Xcode 8 GM on Swift 3

同様のエラーを修正するために、完了ブロックに@escaping追加することを提案しています。私の問題は完了ブロックを伴わない。だから、私は誤ってパラメータとして迅速なエラーの型を処理していると仮定し、objcのこれらの2つのメソッドの実装としてNSErrorを使用しています。

これを修正する方法の提案はありますか? ありがとう!

答えて

0

私は標準スウィフトエラーの種類はどこか私のプロジェクトでは不十分という名前のエラー・クラスによって上書きされていたことがわかりました。

0

私はAWSにはあまりよく慣れていませんが、使用しているプロトコルのドキュメントを見ていて、関数名があまり一致しない場合は、ここで最も新しいと思われる名前を見てください。

http://docs.aws.amazon.com/AWSiOSSDK/latest/Protocols/AWSCognitoIdentityPasswordAuthentication.html

http://docs.aws.amazon.com/AWSiOSSDK/latest/Protocols/AWSSignInDelegate.html

+0

試してくれてありがとうございます...これは問題ではありません。1.私は最初に月の前にメソッドを実装して以来、これらが変更されたとは思わない。 2. Iamの呼び出しは、プロトコル用に作成された自動生成スタブです。 3. AWSSignInDelegateの定義にジャンプすると、onLoginは "onLoginWithSignInProvider"メソッドの実装のために:NS_SWIFT_NAME(onLogin(signInProvider:result:error :))としてリストされます。 – OhNoNotALinkerError

関連する問題