假设我有具有 3 个属性的练习集类:id、name、isEnabled。
我有一个此类的对象数组:
var exerciseSets: [ExerciseSet] = [] {
didSet {
ExerciseSet.syncWithPList(updatedSets: exerciseSets)
}
}
在代码中的某处,我执行以下操作:
exerciseSets[index].isEnabled = !exerciseSets[index].isEnabled
但是在这种情况下 didSet 不会触发。只有当我这样写:
let set = exerciseSets[index]
set.isEnabled = !set.isEnabled
exerciseSets[index] = set
为什么会这样?我可以以某种方式使用前一个选项吗?后一个似乎很冗长,我讨厌它。