managedObject类和我自己的模型类之间的关系?

时间:2015-02-19 06:40:23

标签: ios core-data

在这个article中,它说"核心数据是一种模型层技术。核心数据可帮助您构建代表应用状态的模型层。 "

我对managedObject类和我自己的模型类之间的关系感到困惑。如果我使用核心数据,我是否应该在整个项目中使用managedObject类而不是我自己的模型类,这意味着将下载JSON数据解析为managedObject实例,使用managedObject实例配置视图外观?

如果没有,我应该仅为持久性转换我的模型类的实例吗?

3 个答案:

答案 0 :(得分:2)

是的,您需要使用NSManagedObject类而不是您自己的NSObject类来进行持久性行为,因为NSManagedObject类的名称与您的实体名称相同,并且实体对象中的对象名称相同。

答案 1 :(得分:0)

NSManagedObject是一个泛型类,它实现了Core Data模型对象所需的所有基本行为。无法将NSObject的直接子类(或任何其他未从NSManagedObject继承的类)的实例与托管对象上下文一起使用。

答案 2 :(得分:0)

如果您需要在应用程序中持久化,那么您可以将Core Data NSManagedObject用于您的数据类或自己构建持久层(使用FMDB或其他库)。

如果决定使用Core Data,则可以继承NSManagedObject类并创建模型所基于的模型基类。这是添加所有模型类可以使用的常用功能的好方法。例如。我添加到NSManagedObject子类的基类中有一些类方法:

@interface MyManagedObject : NSManagedObject

/// Returns string representation of entity name (i.e class name)
+ (NSString*) entityName;

/// Returns new instance of entity in passed context
+ (instancetype) newInstanceInManagedObjectContext:(NSManagedObjectContext *)pContext;

/// Returns fetch request for the entity
+ (NSFetchRequest *) fetchRequest;

@end