結論から言うと、@ObservationIgnored を使います。
ただし、これを使うと該当のプロパティが更新されてもViewは更新されなくなるので、Class内でしか使わないプロパティや、もしくはViewでの描画に使わないプロパティでしたらこのやり方でどうにかなるはずです。
正直こう言う仕様なのか、バグなのか私はわかりませんが、とりあえず下記のやり方で解決したので、このやり方で間に合う方はそれでいいでしょう。
おかしくなるコード
var second_interval: Int = 1{
didSet {
UserDefaults.standard.set(second_interval, forKey: "MyKey")
}
}
修正後
@ObservationIgnoredをつけてください。
@ObservationIgnored var second_interval: Int = 1{
didSet {
UserDefaults.standard.set(second_interval, forKey: "MyKey")
}
}