2016-08-17 71 views
-1

我試着用resultsArray = [AnyObject]()以及resultsArray = [JSON]()解析數據都讓我崩潰json數據解析有什麼問題?

我的數據:

data = (
     { 
     id = 2141 
     results = (
       { 
       city = Delhi; 
       company = "AIR CREATOR"; 
       country = IN; 
       }, 
       { 
       city = Dubai; 
       company = "Alwali"; 
       country = UAE; 
       } 
     ); 
    }) 

現在,當我分析我在reloadData得到崩潰:

if let val = data["results"] { 
      let json = JSON(val) 
      let array = json.arrayValue 

      dispatch_async(dispatch_get_main_queue(), { 
       for a in array{ 
        self.resultsArray.append(a) 
       } 
       self.myTableView.reloadData()//<--crash point 
      }) 
     } 

當我打印

print(self.resultsArray[0]) 

{ "city" : "Delhi", "country" : "IN", "company" : "AIR CREATOR" }

print(self.resultsArray[0]["country"]) 

IN

+0

嘗試打印總結果數組。 –

+0

檢查你的IBOutlet的tableVIew已連接嗎? –

+0

全部連接並檢查。把我的頭髮拉出來 –

回答

0

它應該是這樣的:每行(作爲一個單獨的命令:

if let array = data["results"] { 
    // var resultsArray: [[String: String]] = [] // your property should be like this 
    dispatch_async(dispatch_get_main_queue(), { 
    for a in array { 
     self.resultsArray.append(a) 
    } 
    print(resultsArray) 
    self.myTableView.reloadData() 
    }) 
} 
+0

不是類型不匹配resultsArray無法以這種方式存儲JSON –

+0

不是數組嗎?在我的代碼中,它是一個JSON數組。 –

+0

你不想讓你的陣列像{「city」:「Delhi」,「country」:「IN」,「company」:「AIR CREATOR」} –

0

嘗試reloadData之前和之後(LLDB)寫你的調試區域添加一個斷點)

po self.myTableView 
po self.myTableView.delegate 
po self.myTableView.dataSource 

檢查任何零值的輸出。

編輯:
還有一兩件事,我面臨着同樣的問題之前,原因是我的自定義單元格的問題,有一個與細胞網點之一的連接有問題,在連接檢查驚歎號督察輕拍故事板。