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