我正在尝试解析 JSON 并在 tableview 数组中附加 JSON 响应值。在下面的响应 subcategory 几个对象我得到了值,但其中一些我得到了 null。
{
"category": [
{
"id": 0,
"subcategory": [ //Table cell button need to show green color
{
"subcategory_id": 10
}
]
},
{
"id": 0,
"subcategory": null //Table cell button need to show red color
}
]
}
我需要将值附加到数组 中,例如:[10, null,....] 。如果子类别 null 意味着我需要存储 null 否则它的值。
应用到单元格后,如果值为null需要更改单元格按钮图片。
我尽力解决超出范围的问题,但在上述情况下我没有得到很好的结果。
这是我的代码
if indexPath.row < id.count {
cell.accessibilityValue = String(id[indexPath.row]) // If the cell.accessibilityValue not null then need to change cell button image.
}
cell.name_Label.text = name[indexPath.row]
cell.city_Label.text = city[indexPath.row]
从 JSON self.id.append(items) 追加的数组。我得到输出 like [10] 但实际结果应该是 [10,null] 。数组的长度不正确,如果数据为 null 或 nil,我需要数据为“null”,因为我通过索引获取值,并且每个索引都知道为 null 或具有值,但它必须存在
Best Answer-推荐答案 strong>
id 应该是 optional Int 的数组
subcategory_id 应该是 optional Int
var subcategory_id: Int?
var id: [Int?] = []
if let subCat = subcategory_id {
id.append(subCat)
}
else {
id.append(nil) // id=[nil]
}
在你的 cellForAtRow 重载中
id 是一个 optional Int (Int? ) 数组,你必须解开它
cell.id_Label.text = id[indexPath.row]!
或
if let i = id[indexPath.row] {
cell.id_Label.text = "\(i)"
}
else {
print("id is nil")
}
关于ios - Swift Tableview 单元格按钮图像根据 tableview 数据更改,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/51733375/
|