我有3个代表城市的按钮,我通过tags为其分配了Attribute Inspector,如下所示,CityA as 0, CityB as 1, CityC as 2

我有一个空的标签数组

var cityTag: [Int] = []

然后在IBAction方法中
@IBAction func cityButtonPressed(_ sender: AnyObject) {
    guard let button = sender as? UIButton else { return }
    cityTag = [sender.tag!]
}

我在citySelected类型的核心数据中有一个Transformable属性

当我保存数据时,它会记住只有上一次选择的城市,并且在控制台上的输出是
Record Saved Successfully
citySelected = "(\n    2\n)";

但是下面应该是这样,因为我选择了所有城市
Record Saved Successfully
citySelected = "(\n    0\n    1\n    2\n)";

我想念什么?

最佳答案

就像您每次都在重新初始化数组一样。而是像这样添加或删除新元素:

if(cityTag.contains(sender.tag!)) {
     if let index = cityTag.index(of: sender.tag!) {
         cityTag.remove(at: index)
     }
} else {
     cityTag.append(sender.tag!)
}

10-04 18:46