aws.amazon.com/mobile/の現在のサンプルコードに続いて、Swift 3によく更新されていないコード項目がいくつかあります(かなり奇妙ですそのリソースを考慮して)。最新のAmazon AWS Mobileサンプルコードで奇妙なSwift 3の問題
if (!isInitialized) {
AWSIdentityManager.defaultIdentityManager().resumeSession(completionHandler:
{(result: AnyObject?, error: NSError?) -> Void in
print("Result: \(result) \n Error:\(error)")
} as! (Any?, Error?) -> Void)
isInitialized = true
}
だけで任意の実行時にクラッシュ:
あなたはAWSMobileClient.swiftに来たとき、このようなコードの行があります。
は幸い、私は問題はこれですので
AWSIdentityManager.defaultIdentityManager().resumeSession(completionHandler:
{(result: Any?, error: Error?) -> Void in
print("Result: \(result) \n Error:\(error)")
} as! (Any?, Error?) -> Void)
、私は警告を受ける
のように引数を変更することにより、それを修正することができました確かに、それはそれをキャストしようと無意味と思われます同じ種類に。
しかし、あなたは、単にキャストを削除した場合
AWSIdentityManager.defaultIdentityManager().resumeSession(completionHandler:
{(result: AnyObject?, error: NSError?) -> Void in
print("Result: \(result) \n Error:\(error)")
}
isInitialized = true
だけでは奇妙な構文エラー
1のすべての種類を取得し、全く動作しない)のはなぜですとにかくそこにキャストがありますか?
2)どうやってキャストを取り除くことができますか、それとも正しく書き込んでも同じキャストがないので警告が出ませんか?
3)解決策は力を取り除くことだと思うが(as!
ではなくas
ではなく)、ブロックをキャストしなければならない理由がわからない。
注 - コードの同じ行で、あなたはここでiOSシミュレータでEXC_BAD_ACCESSを取得した場合Amazonはその後、シミュレーターの操作を行い、コメント」が含まれる - > ...コンテンツと設定をリセットし、これがクリアされます同じバンドルIDを持つ他のアプリに格納されている不正な認証トークン。私がここで求めている問題はそれとはまったく関係ありません。
ああ!あなたはそれを説明した。もっと。ありがとう! :) – Fattie
(PS、 'isInitialized'に関して私はそれもその完成ブロックにあるはずです;彼らが何をしているのかはわかりません:うまくいくようです) – Fattie
私はその質問者が私の回答を編集するのが嫌いです私はそれを '私の道'と編集しました;-) – vadian