Ios 核心数据逻辑分布?

Ios 核心数据逻辑分布?,ios,cocoa,core-data,nsmanagedobject,nsmanagedobjectcontext,Ios,Cocoa,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,我已经使用核心数据有一段时间了,但我只是问了自己一个问题,我自己总是倾向于创建某种本地存储类,从中我管理核心数据模型,这将是一个引用托管对象上下文的单例类,我有创建新托管对象、删除对象、保存等方法。。。 我的托管对象子类实际上只是模型 但我也经常与其他人的项目合作,有时其他开发人员倾向于以类方法的形式向托管对象子类添加更多的逻辑,并且有一个非常简单或有时根本没有核心数据“包装器”类 例如,我通常会这样做: User *me = [[MyDataStore getInstance] createU

我已经使用核心数据有一段时间了,但我只是问了自己一个问题,我自己总是倾向于创建某种本地存储类,从中我管理核心数据模型,这将是一个引用托管对象上下文的单例类,我有创建新托管对象、删除对象、保存等方法。。。 我的托管对象子类实际上只是模型

但我也经常与其他人的项目合作,有时其他开发人员倾向于以类方法的形式向托管对象子类添加更多的逻辑,并且有一个非常简单或有时根本没有核心数据“包装器”类

例如,我通常会这样做:

User *me = [[MyDataStore getInstance] createUserWithName:@"Daniel"];
鉴于其他国家有:

User *me = [User userWithName:@"Daniel"];
显然,后者更好,而且在我看来更人性化,但最终可能会产生大量碎片代码,但另一方面,我的解决方案意味着您有一个非常大的文件,一旦超过一定长度,它就不太好了


我想知道其他人是否可以分享他们对此的观点。谢谢。

从MVC的角度来看,在NSManagedObject子类中放置逻辑代码是更正确的做法。就我个人而言,我觉得这是一件更符合逻辑的事情,也就是说,这段代码创建了一个新的User实例,因此我将把它放在User类中

在实际层面上,我过去不喜欢将逻辑代码放在NSManagedObject子类中,因为如果我修改了模型,它将全部消失,但是我现在使用的是能够处理所有这些的,我不必担心我的自定义逻辑被重写

现在我倾向于尝试利用CoreData的另一件事是抽象实体。它们不仅可以简化模型,还可以简化自定义逻辑,我的意思是它基本上只是围绕CoreData进行子类化

只是我的意见和目前对我有用的东西,
希望它能帮助别人,期待任何其他的贡献

通过将自定义代码放在单独的Objective C类别中,可以避免自定义代码被生成的类替换的问题。谢谢你的想法Steffan,如果我们在推特上分享这个问题,或许我们可以得到更多的意见,我真的认为这是一个有趣的问题。厌倦了等待更多的意见,他们不会来了。。。你还不如得到名声