2017-01-16 79 views
0
func connectionDidFinishLoading(_ connection: NSURLConnection) 
    { 

    NSLog("\(statusResponseData)") 

    let strData:NSDictionary! = (try! JSONSerialization.jsonObject(with: statusResponseData, options: JSONSerialization.ReadingOptions.mutableContainers)) as! NSDictionary 

當我將代碼從swift 2.2轉換爲swift 3.0時,出現以下錯誤。
在swift ios中解析NSJSON序列化中的json時出現錯誤

不能調用JSON對象與列表類型的參數(與NSMutable數據選項:JSONSerialization.ReadingOptions)。

請幫我解決這個問題。

+1

閱讀Swift 3發行說明,這是您沒有做的,並閱讀您對Swift 2代碼所做的更改。除非你知道爲什麼,否則不要使用mutableContainers。我希望你知道如果有任何問題,你的代碼會崩潰。 – gnasher729

+0

@ gnasher729。我對swift很陌生,你可以用我的代碼來幫助我嗎? – Rakesh

回答

0

取代:

let strData:NSDictionary! = (try! JSONSerialization.jsonObject(with: statusResponseData, options: JSONSerialization.ReadingOptions.mutableContainers)) as! NSDictionary 

有:

if let strData = try JSONSerialization.jsonObject(with: statusResponseData, options: []) as! JSONObject { 
     //Do what you need to! 
     } 

我不知道爲什麼所有的教程暗示mutableContainers選項。在使用本機集合類型時,您在Swift中完全不需要它。

+1

爲什麼?這就是所謂的「貨物崇拜節目」。 – gnasher729