class ChecklistViewController: UITableViewController {
    var row0text = "Walk the dog"
    var row1text = "Brush teeth"
    var row2text = "Learn iOS development"
    var row3text = "Soccer practice"
    var row4text = "Eat ice cream"

    var row0checked = false
    var row1checked = false
    var row2checked = false
    var row3checked = false
    var row4checked = false

    override func tableView(tableView: UITableView,                       didSelectRowAtIndexPath indexPath: NSIndexPath) {
        if let cell = tableView.cellForRowAtIndexPath(indexPath) {
            if indexPath.row == 0 {
                row0checked = !row0checked
                if row0checked {
                    cell.accessoryType = .Checkmark
                } else {
                    cell.accessoryType = .None
                }
            } else if indexPath.row == 1 {
                row1checked = !row1checked
...
row0checked = !row0checked在这里的目的是什么?

我知道!此处的意思是而不是,但是我无法理解这部分代码。

最佳答案

row0checked = !row0checked的作用是取相反的值,例如:

如果选中了第一行并按了它,它将被取消选中。

因此,如果row0checkedtrue并且您运行row0checked = !row0checked,那么row0checked将是false,反之亦然。

这样做是为了检查/取消选中清单项目,并通过设置cell.accessoryType显示它。

关于ios - 给自己设置一个 boolean 变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39423933/

10-10 21:04