2014-04-14 142 views
0

我想爲自己的用途編寫一個簡單的個人理財應用程序,並且遇到以下問題,並想知道是否有人可以將我設置爲筆直。核心數據託管對象集

我的數據模型非常簡單,我有'帳戶'管理對象,其中有'事務'管理對象的NSSet,而NSSet具有'分裂'管理對象的NSSet。

「拆分」對象有一個類別和一個金額,因此任何交易可以由多個類別組成,金額不同。例如交易總額是£25英鎊 - 食品和£15 - 燃料等

「交易」管理對象也可以與另一個「交易」管理對象具有可選的1對1關係。這是爲了當我想代表轉移。因此,我有2個'交易'對象具有相同的屬性,如日期等,但每個屬於不同的'帳戶',所以當我查詢一個帳戶的交易清單時顯示。

我已經在'transaction'管理對象上重寫了相應的setter,比如setDate,這樣當它被調用時,它會檢查它是否有另一個'transaction'管理對象連接到它,如果它有,該交易的日期。這種方式對一項交易所做的更改反映在其他帳戶交易中。

還跟我..?現在問題出在交易的NSSet'split'對象上。

比方說,我創建了賬戶A. 一個新的事務我設定的日期爲交易 我創造它爲了討論有食物的20£類別的交易中的「分裂」的對象。 在我的用戶界面中,我接着說這個交易是轉賬。這會提示我選擇要轉移到的帳戶,我選擇帳戶B. 在後臺創建一個新的「交易」對象,其帳戶設置爲帳戶B,我從原始交易的日期等中複製在帳戶a,但我想設置'交易'對象指向相同的'拆分'NSSet。

這樣,如果我改變其中一個事務的分割中的類別或數量,它反映在另一個事務中?更簡單的屬性更改是通過像setDate這樣的setter來處理的。 「交易」對象可以指向相同的NSSet分割,還是手動必須在更改時同步更改到兩個集合?

希望這是有道理的,並感謝您收到的任何幫助。

+0

轉移是否真的有分裂?什麼是用例? – Wain

回答

0

您的關係需要很多:交易和拆分實體之間的關係很多。

如果你想這樣做,那麼最好是創建自定義方法來設置傳輸和拆分,而不是嘗試覆蓋。您需要編寫關於如何根據對另一個對象關係的更改更新一個關係的邏輯。一旦配置了關係,另一端的對象就很常見,因此對分割實例的更改很簡單。

使用mogenerator將自定義代碼單獨管理到自動生成的代碼也是一個好主意。

+0

感謝您的信息,你能給我一些簡單的示例代碼來幫助嗎? – olly

+0

哪個部分?它基本上和你所說的一樣。自定義方法只是提供了設置傳輸事務的能力,並且可以同時將自身和分割連接起來。 – Wain

0

我會建議改變你的模型。

交易實體用於分割實體共享的數據,如日期和描述。每個交易總是至少有一個拆分(或者如果您正在進行系統重複記帳,則爲2個拆分)。您可以通過Split實體公開交易屬性。

您的賬戶實體與交易沒有直接關係。它只與Split實體有直接關係。

相關問題