我正在编写一个核心数据可可应用程序,其中有账户和交易(货币)。帐户实体说明包含余额属性。交易实体说明与帐户有关系。可可绑定:改变时获得旧值
我需要应用程序来更新账户余额,当交易有他们的账户设置或更改。例如,如果交易账户从支票变为信用,则应更改支票和信用余额以反映此情况。
我遇到的问题是我不确定如何确定交易的旧帐户,以便我可以更新余额。我正在使用绑定。
任何人都可以指向正确的方向吗?
我正在编写一个核心数据可可应用程序,其中有账户和交易(货币)。帐户实体说明包含余额属性。交易实体说明与帐户有关系。可可绑定:改变时获得旧值
我需要应用程序来更新账户余额,当交易有他们的账户设置或更改。例如,如果交易账户从支票变为信用,则应更改支票和信用余额以反映此情况。
我遇到的问题是我不确定如何确定交易的旧帐户,以便我可以更新余额。我正在使用绑定。
任何人都可以指向正确的方向吗?
我假设账户实体与交易有反比关系。 (苹果公司强烈建议你总是有相反的关系。所以,如果你没有,请设置它!)
比方说,你有一个子类的NSManagedObject
为帐户实体Account
和Transaction
为交易单位。 与transactions
调用与交易的反比关系。
然后,当您更改事务帐户时,CoreData自动更新反比关系。因此,您只需要在Account
中编写一个transactions
的自我观察例程,以便Account
对象自己跟踪天平。我认为它更倾向于面向对象 - 使得Account
物体自己照顾自己,而不是从Transaction
对象的一侧改变平衡......尽管这当然取决于你的口味。
要执行观察,请使用KVO。基本上,您可以通过addObserver:forKeyPath:options:context:
注册KVO和一系列适合的选项。然后,通过执行observeValueForKeyPath:ofObject:change:context:
来获得更改。这些更改可以在传递给该方法的字典中找到。
请确保在你的'options:'设置中指定了'-addObserver:forKeyPath:options:context:'你希望传入新值和旧值。 – 2010-01-26 18:37:44