model.foo = 123 したら自動でUserDefaultsにも書き込む奴。 SourceryとAssociatedObjectで出来たのでメモ。 問題 アプリの設定をこういうクラスに突っ込んでて、プロパティを更新したときにUserDefaultsに書き込むようにしていた。 // キーを定義 extension DefaultsKeys { static let foo = DefaultsKey<Int>("foo", defaultValue: 0) static let bar = DefaultsKey<String>("bar", defaultValue: "BAR") } // fooのセッター func setFoo(value: Int) { appSettings.foo = value Defaults[.foo] = value } // barのセッター