let message = JSON((userInfo["aps"]?["alert"])!).stringValue
スウィフト何の添字のメンバーを持っていませんが、解決に見えることはできませんこのエラー。タイプ「どれが」私は「タイプ 『どれが』は添字メンバーがありません」スウィフト3に変換しようと</p> <p>を取得する建物私がしようとすると3
let message = JSON((userInfo["aps"]?["alert"])!).stringValue
スウィフト何の添字のメンバーを持っていませんが、解決に見えることはできませんこのエラー。タイプ「どれが」私は「タイプ 『どれが』は添字メンバーがありません」スウィフト3に変換しようと</p> <p>を取得する建物私がしようとすると3
Frankies答えへの代替ソリューションは、このonelinerです:
let message = (userInfo["aps"] as? [AnyHashable: Any])?["alert"] as? String ?? ""
最後にメッセージがない場合は、メッセージまたは空の文字列を持っている(またはJSON構造がある場合あなたが期待通りではありません)...
優れています。これは、説明のおかげで、動作します! –
うれしい私は助けることができました - あなたは歓迎です:) –
コンパイラはどのタイプがuserInfo["aps"]
であるかわかりません。したがって、タイプはAny
と仮定しています。
["alert"]
のAny
には、添え字を呼び出すことはできません。だからそれは不平を言う。
ハッシュ可能なものとしてアンラップする必要があります。例:
if let dict = userInfo["aps"] as? [String : AnyObject] {
let message = dict["alert"]
}
どのようなタイプが 'userInfo'ですか? –
それは[AnyHashable:Any] –
で、JSONコンストラクタでは文字列が必要ですか? –