基于Tableview数据更改了Swift Tableview单元格按钮图像

时间:2018-08-07 18:37:27

标签: ios json swift tableview

我正在尝试解析JSON并将JSON响应值附加到tableview数组中。在响应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
    }
    ]
}
  1. 我需要将值附加到数组like : [10, null,....]中。如果子类别为nu​​ll,则表示我需要存储null,否则需要存储其值。

  2. 应用于单元格后,如果该值为null,则需要更改单元格按钮Image。

我尽力解决了超出范围的问题,但在上述情况下我没有得到很好的结果。

这是我的代码

 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或具有值,但必须在其中

1 个答案:

答案 0 :(得分:0)

  1. id应该是optional Int的数组
  2. 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重载中

    idoptional IntInt?)的数组,您必须将其拆开

    cell.id_Label.text = id[indexPath.row]!
    

    if let i = id[indexPath.row] {
      cell.id_Label.text = "\(i)"
    }
    else { 
          print("id is nil")
        }