id、name、isEnabled の 3 つのプロパティを持つクラス ExerciseSet があるとします。
私はこのクラスのオブジェクトの配列を持っています:
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
なぜそうなのですか?どうにかして前者のオプションを使用できますか? 後者は冗長に思えますが、私はそれが嫌いです。