私のタイトルが私の質問を最もよく表しているかどうかはわかりませんが、より良いものを思いつきませんでした!
「トランザクション」と「分割」の 2 つの管理対象オブジェクトがあります。トランザクションは「分割」と 1 対多の関係にあるため、分割オブジェクトの NSSet があります。Split には、Category (NSString) と Amount (NSDecimalNumber) の 2 つのプロパティがあります。
トランザクションには、Split オブジェクトの NSSet を反復処理してすべての「Amount」プロパティを合計することで現在計算している値があります。
これは正常に機能しており、パフォーマンスの問題はないようですが、数千のトランザクションがある場合、これはうまくスケーリングしないと思われます。
私がする必要があると思うのは、Transaction オブジェクトに「Amount」プロパティを (キャッシュとして) 設定し、これを毎回更新して、NSSet に含まれる「Split」オブジェクトの 1 つの「Amount」プロパティに変更を加えることです。 .
私がこれまでのところ理にかなっていることを願っています..
私の質問は、これを達成するための最良の方法ですか? KVO が設計されたもののように感じますが、これまで実際に使用したことはありません。いずれかの分割の「金額」の値が変更され、それによって独自の値を再計算できる場合、トランザクション オブジェクトに通知する必要がありますか?
それとも、分割の Amount プロパティのセッターでこれを行う必要がありますか??
確かにこれは一般的な問題であり、非常に洗練された解決策が存在する問題ですか? アドバイスやサンプルコードは大歓迎です..?
乾杯