2016-03-28 285 views
0

我的代碼是致命錯誤

let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers) as! NSArray 
          let json = JSON(jsonData) 


for (_, subJSON): (String, JSON) in json[0]["events"] { 

let rel1 = InboxEvents(title: subJSON["title"].string!, guests: subJSON["guests"].string!, eventpic: subJSON["eventpic"].string!, eventID : NSInteger(subJSON["ID"].string!)!) 


self.arrayOfRels.append(rel1) 

    } 

這裏是InboxEvents

class InboxEvents { 

    var title = "" 
    var guests = "" 
    var eventpic = "" 
    var eventID = 6 


    init(title : String, guests: String, eventpic : String, eventID : NSInteger) { 

     self.title = title 
     self.guests = guests 
     self.eventpic = eventpic 
     self.eventID = eventID 

    } 
我有在for循環 fatal error: unexpectedly found nil while unwrapping an Optional value

JSON輸出是在這裏

[ 
    { 
    "events" : [ 
     { 
     "ID" : "3", 
     "title" : "Test Event", 
     "guests" : 3, 
     "eventpic" : "/images\/event_pic\/event1.jpg" 
     }, 
     { 
     "ID" : "1", 
     "title" : "Test Event", 
     "guests" : 2, 
     "eventpic" : "/images\/event_pic\/event1.jpg" 
     } 
    ] 
    } 
] 

有什麼問題嗎?

+0

什麼是JSON在這個詮釋代碼JSON(jsonData),你有沒有創建一個方法,或者你正在使用和第三方 – HardikDG

+0

編輯問題 –

回答

1

你的問題是在JSON的subJSON["guests"]已顯示爲例子客人蔘數是int類型的,但是當你取你取的值作爲字符串值
所以,當你只需打印該值它會顯示爲零,當你試圖迫使展開它崩潰

所以可以有兩個選擇

  • 你要麼改變JSON客人財物的字符串作爲InboxEvent你逝去的字符串

  • 另一種選擇是你得到的價值整數/ dobule根據您的要求轉換到字符串,並通過在InboxEvent或使InboxEvent走,而不是字符串

+0

嘿我最近意識到,現在修復 –