我向NSManagedObject
添加了几个类方法,其中一个我需要获取它的NSEntityDescription
。问题是,entity
是一种实例方法,我不知道如何从类方法中访问它。
有没有办法做到这一点,没有创建一个虚拟实例只是为了访问这个属性?听起来像是一个可怕的黑客...
答案 0 :(得分:3)
NSManagedObject
课程无法了解NSEntityDescription
,因为课堂上没有entity
。看看- (instancetype)initWithEntity:(NSEntityDescription *)entity
insertIntoManagedObjectContext:(NSManagedObjectContext *)context
;在使用实体描述初始化它之后,您将能够从实例中检索它。
实现您所描述的内容的一种方法是为您的Core Data实体提供NSManagedObject
子类(这是一种推荐的方法),并且有一个类方法+ (NSString)entityName
,它将返回表示核心数据模型中的实体名称。
+ (NSString *)entityName {
return @"MyEntity";
}
如果我们假设类名和实体名称相同,则可以这样做:
+ (NSString *)entityName {
return NSStringFromClass(self);
}
希望它有所帮助。