ios - Swift Tableview 单元格按钮图像根据 tableview 数据更改
问题描述
我正在尝试解析 JSON 并在 tableview 数组中附加 JSON 响应值。在下面的响应subcategory
中,我得到了一些对象的值,但其中一些对象我得到了空值。
{
"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
}
]
}
我需要将值附加到数组
like : [10, 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 或具有值,但它必须存在
解决方案
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") }
推荐阅读
- java - 沙发库中的多个文档更新
- vue.js - l 矩形组件不更新
- django - 如何将请求传递给 Rest Framework 中的字段序列化程序?
- javascript - 在 React 中改变 onChange 的 props
- asp.net-core - 如何在实体框架核心中将 sql 过程作为原始查询执行
- python - 根据系列组合 2 列
- python - pygame 襟翼鸟随机管道生成
- java - 在 Java 和 Maven 上运行 Groovy 测试
- node.js - InvalidParameterValue:重复的标头“内容传输编码”
- python - 如何应用 Lambda 函数获得负周数?