我有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!)
}