Avatar
Avatar
koher
あと↓がっかりなんだけど、これミスなく手で書くの辛そう・・・。 @Observable マクロががんばってくれたりはしない? extension MyObject { var someComputedProperty: Int { somePrivateProperty + someOtherProperty } nonisolated static func dependencies( of keyPath: PartialKeyPath<Self> ) -> TrackedProperties<Self> { switch keyPath { case \.someComputedProperty: return [\.somePrivateProperty, \.someOtherProperty] default: return [keyPath] } } }
omochimetaru 4/12/2023 2:05 AM
これ原理的にはObservationTrackingを使って自動的に実装できる説がフォーラムにも書かれてましたね (edited)
2:06 AM
ただし部分式が短絡するケースがあるので、依存プロパティが更新された時に(新たな依存が見えてくることがありえるから)またスキャンしないといけない (edited)
2:07 AM
提案書に議論が書いてないけど、自動実装(実行時依存解析)だとパフォーマンスペナルティが大きすぎるからやめたんじゃないかなあ