Objective c Objective-扩展已初始化的对象
当然是个愚蠢的问题,但我做了一个名为Objective c Objective-扩展已初始化的对象,objective-c,object,inheritance,Objective C,Object,Inheritance,当然是个愚蠢的问题,但我做了一个名为GLManagedObject的类,它扩展了NSManagedObject 我已经初始化了一个NSManagedObject,我想用我的自定义方法扩展它: NSManagedObject*mo=[someclass getAnInitializedMO]; [(GLManagedObject*)mo myCustomMethod]; 如何将myCustonMethod与mo结合使用 我试图添加一个初始值设定项方法 +(MGLManagedObject*)i
GLManagedObject
的类,它扩展了NSManagedObject
我已经初始化了一个NSManagedObject
,我想用我的自定义方法扩展它:
NSManagedObject*mo=[someclass getAnInitializedMO];
[(GLManagedObject*)mo myCustomMethod];
如何将myCustonMethod
与mo
结合使用
我试图添加一个初始值设定项方法
+(MGLManagedObject*)initWithMO:(NSManagedObject*)mo
{
返回(MGLManagedObject*)[mo副本];
}
但是它告诉我们,
copyWithZone
无法识别。创建一个自定义+(id)glmanagedObjects WithmanagedObject:(NSManagedObject*)managedObject;或-(id)initWithManagedObject:(NSManagedObject*)managedObject;在GLManagedObject中,将managedObject复制到新对象中。解决此问题的另一种方法是将myCustomMethod添加到类别中的NSManagedObject。如果您不需要新的属性或实例变量,则需要重写copy方法(实际上是copyWithZone方法),因为很明显,您正指望NSObject为您完成任务,而它不会。您需要手动进行复制。您没有机会使用类别??不,它没有:它继承了NSObject复制方法,但这不起作用。