2016-09-19 23 views
-1

SWIFT 3への変換中に、私はエラー「聞かせてuserImage =(userDetail [」車両を取得しています。このラインで"タイプには添え字メンバーがありません"というエラーを解決する方法はありますか?

let userDetail:Any = (GJCommon.sharedInstance.getUserInfo() as? NSDictionary)! 

    print(userDetail) 

    let userImage = (userDetail["Vehicle"]["bike_photo"] as? String)! 

「どれでも持っていない添字のメンバーを入力します」のように、私はエラーを取得していますSWIFT 2.3のコードを書かれています"] [" bike_photo "]?String)!"これを手伝ってください。

+3

右の[関連]セクションに同じタイトルの質問が6件以上表示されます。あなたの問題を解決するのに役立つものはないと確信していますか? –

+0

はい、私のエラーは辞書から値を取得しています。誰も私の疑いを明らかにしなかった。 – Vijay

+0

http://stackoverflow.com/questions/39466624/ambiguous-use-of-subscript-after-converting-to-swift-2-3/39466734#39466734 –

答えて

1

はこれを試してみてください:

if let userDetail = GJCommon.sharedInstance.getUserInfo() as? [String:AnyObject] { 

    print(userDetail) 

    let userImage = (userDetail["Vehicle"]["bike_photo"] as? String)! 
} 
+0

結果をお知らせください。 –

+0

ありがとう!私がNSDictionary代わりに[String:AnyObject]を使用している場合、その作業はuserImage =(userDetail ["Vehicle"] ["bike_photo"]?String)としましょう。 – Vijay

+0

それは動作しますか? –

0

あなたはNSDictionaryのようuserDetailにアクセスしようとしているが、それはタイプのいずれかです。

#Mr.UBはに最初の行を変更し、(それを私にビート)言ったように:

let userDetail = (GJCommon.sharedInstance.getUserInfo() as? NSDictionary)! 

そして、あなたのコードの他の部分は、オブジェクトかもしれないが、それはその後、コンパイルする必要があります。より多くの文脈が役に立つでしょう。

ただし、あなたの使用!このことを強制的に解消し、後の結果は悪い考えです。条件付きアンラッピングを使用すると、より正常にエラーを捕捉し、定期的にクラッシュするアプリケーションを回避できます。

関連する問題