2015-07-21 94 views
0

我正在使用SwiftyJSON來解析來自服務器的json響應。swifty json崩潰了很多

該應用程序崩潰了很多(獲取crashlytics報告),但我似乎無法弄清楚他們在哪裏發生。

的代碼行的所有不同點的到是

let jsonDict = JSON(data: data, options: NSJSONReadingOptions.AllowFragments, error: nil) 

此相同的線被用來解析所有的不同端點JSON響應的。

做這些請求的基本代碼是:

NSURLConnection.sendAsynchronousRequest(
    req, 
    queue: queue) 
    { (res: NSURLResponse!, data: NSData! , err: NSError!) -> Void in 
     let jsonDict = JSON(data: data, options: NSJSONReadingOptions.AllowFragments, error: nil) // and crashes on this line 

有在後端沒有任何錯誤和迴應似乎向下發送200 OK響應代碼(雖然它是很難逾越這件事)

有沒有一種方法可以在這條線上放一個試試看,這樣它就不會崩潰應用程序?

繼承人從crashlytics screenshot crashlytics (fabric)

+1

你應該使用'error' parm,並與之一致,檢查NIL結果。 –

+0

你確定崩潰是在JSON解析中,而不是在回調中? IIRC,EXC_BREAKPOINT發生在您打破Swift合同(可爲空,類型轉換,..) – Krumelur

+0

@HotLicks是正確的。在嘗試解析數據之前,您需要檢查服務器調用是否已經工作。除了他提到的事情外,還要檢查響應狀態代碼。 –

回答

0

屏幕你應該弄清楚它爲什麼崩潰試圖通過DO/try/catch語句來掩蓋問題,而不是。首先刪除後端調用,然後提供一個示例JSON代表服務器將返回到您的JSON調用並查看它是否在那裏崩潰。