2014-04-14 141 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实体有直接关系。

相关问题