iOS - 将对象添加到导致崩溃的NSMutableDictionary
在我正在开发的应用程序中,我正在阅读JSON文件。这个文件包含一个玩家列表。每个玩家都有一系列属性。iOS - 将对象添加到导致崩溃的NSMutableDictionary
我已经创建了一个可变数组和一个可变字典来存储数据。我试图将字典存储到数组索引中。我试着用下面的代码可以这样做:
var data = JSON(json!)
let players = data["API"]["Data"]
var i = 0
for (index:String, player:JSON) in players {
if let name = player["name"].string {
//THIS IS WHERE THE ERROR HAPPENS
self.pdata.setObject(name, forKey: "name")
}
if let serial = player["serial_number"].string {
self.pdata.setObject(serial, forKey: "name")
}
if let status = player["player_status"].string {
self.pdata.setObject(status, forKey: "status")
}
if let resolution = player["resolution"].string {
self.pdata.setObject(resolution, forKey: "resolution")
}
if let lastConnected = player["last_connected"].string {
self.pdata.setObject(lastConnected, forKey: "last_connected")
}
if let diskFree = player["disk_free_percent"].string {
self.pdata.setObject(diskFree, forKey: "disk_free")
}
if let memTotal = player["mem_total_phys"].string {
self.pdata.setObject(memTotal, forKey: "mem_total")
}
if let memAvail = player["mem_avail_phys"].string {
self.pdata.setObject(memAvail, forKey: "mem_avail")
}
if(self.pdata.count > 0) {
self.playerList.insertObject(self.pdata, atIndex: i)
self.pdata.removeAllObjects()
i++
}
}
使用此代码,我发现了以下错误,即使我检查的值赋给它之前:
fatal error: unexpectedly found nil while unwrapping an Optional value
如果您使用SwiftyJSON,它看起来像你一样,那么它在保护零值的方面做得很好。这很可能是
如果声明PDATA为:
var pdata:NSMutableDictionary!
那么这就是问题所在。你不是在创建一个字典,而是一个可选的字典。在某些时候,你必须实际创建字典。你可以在同一个地方简单地做:
var pdata = NSMutableDictionary()
改为。
哇。好像我错过了那样。感谢你的回答。 – matcartmill 2015-02-10 12:21:31
评论这个代码检查“名称”的价值,我认为问题可以在这部分代码if(self.pdata.count > 0) { self.playerList.insertObject(self.pdata, atIndex: i) self.pdata.removeAllObjects() i++ }
哪一行导致错误? – 2015-02-10 05:24:57
我评论了错误所在的代码。第7行(包括评论)。谢谢。 – matcartmill 2015-02-10 05:26:22
玩家[“名字”]你有这个领域的数据吗?你可以使用player [“name”]。stringValue在这种情况下,如果player [“name”] nil属性返回空字符串 – 2015-02-10 05:32:06