当项目已关闭时,将其chck状态关闭

时间:2019-03-29 11:47:21

标签: swift cocoa

我对编程有个一般的认识

说有 3个菜单项,其中之一被选中 当我单击另一个时,我需要 取消选中当前选中的一个

说起来容易

关闭所有刚被点击的东西

但随后您最终运行了一个函数 关闭已经关闭的项目

这通常是个问题吗? 这样会占用太多资源吗? 我看不到任何其他方式可以关闭 已经关闭的东西

1 个答案:

答案 0 :(得分:0)

在设置一项之前关闭所有项目都不是问题。

但是,如果您仍然只想处理选中的项目,则可以使用条件for循环或映射来完成。

这是for循环示例:

//Class representing the item.
class Item {
    var isChecked = false
}

//Array of 3 items.
var items: [Item] = [Item(), Item(), Item()]

//Function that should be called (as @IBAction) when an item is tapped.
func itemIsTapped(itemTag: Int) {
    selectItemAt(index: itemTag)
}
//Function that unselected the checked item and select the one that should be.
func selectItemAt(index: Int) {

    //This is the part where you UNCHECKED ONLY the CHECKED item.
    for item in items where item.isChecked {
        item.isChecked = false
    }

    items[index].isChecked = true
}