簡體   English   中英

類型“任何”沒有下標成員Swift 3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM