为什么此for循环不返回任何非false成员?

时间:2019-05-28 19:36:19

标签: arrays swift uitableview for-loop

此for循环不返回任何true成员。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    clientList[indexPath.row].s += 1

    if clientList[indexPath.row].s % 2 == 0 {
        clientList[indexPath.row].isSelected = true
    } else if clientList[indexPath.row].s % 2 != 0{
        clientList[indexPath.row].isSelected = false
    }
}

这是for循环:

@IBAction func toClientsButton(_ sender: Any) {
    for y in 0...clientList.count - 1 {
        if clientList[y].isSelected == true {
            clientsSelected.append(clientList[y])
        }
    }
}

加载下一个屏幕时,clientsSelected数组中没有值。

我做错什么了吗?

2 个答案:

答案 0 :(得分:2)

仅过滤选定的客户端:

let clientListSelected = clientList.filter { $0.isSelected }

用于未知目的逻辑的简单逻辑

let client = clientList[indexPath.row]
client.isSelected = client.s.isMultiple(of: 2)  

答案 1 :(得分:-1)

我想我明白了。我试图将array的所有内容附加到@IBAction并同时选择到下一个视图控制器,后者从array加载数据。感谢您的回答,我也对代码做了一些修改。