【发布时间】:2017-03-30 07:45:00
【问题描述】:
假设我有一个具有 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
为什么会这样?我可以以某种方式使用前一个选项吗?后者似乎冗长,我讨厌它。
【问题讨论】:
-
使ExerciseSet成为一个结构:)
标签: swift computed-properties didset