我正在編寫一個核心數據可可應用程序,其中有賬戶和交易(貨幣)。帳戶實體說明包含餘額屬性。交易實體說明與帳戶有關係。可可綁定:改變時獲得舊值
我需要應用程序來更新賬戶餘額,當交易有他們的賬戶設置或更改。例如,如果交易賬戶從支票變爲信用,則應更改支票和信用餘額以反映此情況。
我遇到的問題是我不確定如何確定交易的舊帳戶,以便我可以更新餘額。我正在使用綁定。
任何人都可以指向正確的方向嗎?
我正在編寫一個核心數據可可應用程序,其中有賬戶和交易(貨幣)。帳戶實體說明包含餘額屬性。交易實體說明與帳戶有關係。可可綁定:改變時獲得舊值
我需要應用程序來更新賬戶餘額,當交易有他們的賬戶設置或更改。例如,如果交易賬戶從支票變爲信用,則應更改支票和信用餘額以反映此情況。
我遇到的問題是我不確定如何確定交易的舊帳戶,以便我可以更新餘額。我正在使用綁定。
任何人都可以指向正確的方向嗎?
我假設賬戶實體與交易有反比關係。 (蘋果公司強烈建議你總是有相反的關係。所以,如果你沒有,請設置它!)
比方說,你有一個子類的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