使用核心数据生成的类作为模型对象......?
Posted
技术标签:
【中文标题】使用核心数据生成的类作为模型对象......?【英文标题】:Using core data generated classes as model objects ...? 【发布时间】:2012-06-19 05:04:33 【问题描述】:它更像是一个最佳实践之类的问题。就这样吧……
我已经在核心数据中为我的实体自动生成了一些类,现在我想将它们用作模型对象以将这些模型转换为 JSON 并将其发送到服务器。所以我的问题是使用这些类是否可以,或者我应该创建单独的类并使用数据映射器类来映射这些核心数据和模型类...
哪种方法更好,为什么...?
感谢您的意见...
【问题讨论】:
【参考方案1】:您可以使用您的 NSManagedObject
子类并向这些类添加方法,就像您添加任何其他 NSObject 类一样。这是完全可以接受的(并且比创建单独的对象类和使用数据映射器更好)。
【讨论】:
除了您的回答之外,我还想指出,由于 Xcode 会覆盖自动生成的子类文件,如果您多次生成它们,最好通过类别扩展您的 NSManagedObject 子类在单独的实现文件中。 这是一个上下文的点,用来跟踪所有的对象。你不应该尝试在外部自己做。如果您对更改不满意,您可以随时丢弃上下文而不保存,或者您可以回滚到上次保存的状态,或者您可以使用撤消管理器撤消整个更改组。上下文可以帮助您,而不是阻碍。 @svena 你根本不需要从 Xcode 生成类。我通常生成它们一次,然后如果我必须向模型添加属性,我只需手动将属性输入到 NSManagedObject 子类中。这不会花费更多时间来重新生成类。 是的,这是真的。但是如果你决定使用自动生成,很高兴知道。 所以,如果我想在我的单例类中保留用户的信息作为一个强属性,可以在我的单例类中创建一个强变量 NSmanagedObject 并在整个应用程序中使用它?【参考方案2】:使用mogen 来避免@svena 提到的问题。它将自动管理核心数据模型的生成,以防止覆盖您自己的代码。另外我建议尝试RestKit 进行服务器交互。至少你可以借用他们的对象序列化代码,因为它完全符合你的要求。
【讨论】:
以上是关于使用核心数据生成的类作为模型对象......?的主要内容,如果未能解决你的问题,请参考以下文章
[iPhone]你将如何为下面给出的结构设计核心数据对象模型