在这个article中,它说"核心数据是一种模型层技术。核心数据可帮助您构建代表应用状态的模型层。 "
我对managedObject类和我自己的模型类之间的关系感到困惑。如果我使用核心数据,我是否应该在整个项目中使用managedObject类而不是我自己的模型类,这意味着将下载JSON数据解析为managedObject实例,使用managedObject实例配置视图外观?
如果没有,我应该仅为持久性转换我的模型类的实例吗?
答案 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