2014-10-01 34 views
0

我新換迅速,由於缺乏經驗,在處理JSON數據,我解決不了這個:崩潰當手柄responsed JSON數據中迅速

/*response handler*/ 
    var response : NSURLResponse? = nil 
    var error : NSError? = nil 
    let responseData = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error) 
    println(responseData) 
    if (responseData == nil){ 
     println("error message") 
    } else { 
     var encodedResponsedData:NSString = NSString(data:responseData!, encoding:NSUTF8StringEncoding) 

     println(encodedResponsedData); 

     let jsonData : NSDictionary = NSJSONSerialization.JSONObjectWithData(responseData!, options:NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary 


     println(jsonData["error"]) 
    } 

println(encodedResponsedData); 

一步它返回

{"success":1,"error":"No error message","user_id": -1 }

然而

`

let jsonData : NSDictionary = NSJSONSerialization.JSONObjectWithData(responseData!, options:NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary

此步驟中的應用程序崩潰,並且返回

fatal error: unexpectedly found nil while unwrapping an Optional value 

我感激提供任何幫助!謝謝!

+1

NSJSONSerialization由於某種原因出錯並返回nil。你需要容忍nil(我相信,可以跳過'as as NSDictionary',也許增加一個'?'或其他一些 - 我不是Swiftie)並顯示'error'值。 – 2014-10-01 21:41:55

+0

thx熱舔,我看到會發生什麼,我有一些回聲作爲評論其他PHP文件已參與,並返回與值的評論在一起,然後JSON解析器糟透了.. – Yank 2014-10-01 22:08:59

回答

0

好吧,我解決了這個問題後,花了幾個小時檢查我的後端,它再次證明,如果你沒有任何調試經驗,這將是非常有害的。 我發現我在其他php文件上回顯了一些註釋,它與JSON一起返回,因此JSON解析器無法識別我的評論消息,然後一切都掛起。