Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Objective-扩展已初始化的对象_Objective C_Object_Inheritance - Fatal编程技术网

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复制方法,但这不起作用。