當一個使用一個方法發現後面 throws 說明可能會拋出異常 須要try 進行處理 json
1 try? 若是解析成功就有值 不然返回nil (推薦)spa
2 try! 若是解析成功就有值 不然直接崩潰 (不推薦)code
3 try 若是 若是解析成功就有值 若是出錯 可以處理異常 輸出錯誤 do try catchblog
4 oc 中 ARC 開發自動添加 release autorelease retain 若是用try catch 一旦不平衡就會出現內存泄漏內存
let jsonStr = "{\"name\":.\"上官\"}" let data = jsonStr.data(using: .utf8) // try? 若是解析成功就有值 不然返回nil (推薦) let json = try? JSONSerialization.jsonObject(with: data!, options: []) // try! 若是解析成功就有值 不然直接崩潰 (不推薦) let json0 = try! JSONSerialization.jsonObject(with: data!, options: []) // // // try 若是 若是解析成功就有值 若是出錯 可以處理異常 輸出錯誤 do try catch // do { let json1 = try JSONSerialization.jsonObject(with: data!, options: []) print( json1 ) } catch { print(error) } // print( json )