[英]Type 'Any' has no subscript members Swift 3
let message = JSON((userInfo["aps"]?["alert"])!).stringValue
當我嘗試構建時,我得到“ Type'Any'沒有下標成員”
嘗試轉換為Swift 3,但似乎無法解決此錯誤。
編譯器不知道userInfo["aps"]
是什么類型。 因此,假設它的類型為Any
。
您不能在Any
上調用下標,即["alert"]
。 所以它抱怨。
您需要將其包裝為可散列的內容。 一個例子:
if let dict = userInfo["aps"] as? [String : AnyObject] {
let message = dict["alert"]
}
Frankies答案的另一種解決方案是此oneliner:
let message = (userInfo["aps"] as? [AnyHashable: Any])?["alert"] as? String ?? ""
最后,您收到消息或如果沒有消息(或者json結構與您預期的不一樣)則為空字符串...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.