调用从超类初始化的子类对象的方法时崩溃



我有两个类 Class1 和 Class2。Class2 继承自 Class1.Class2 包含一个在 Class1 中不存在的更新方法。

我在 ios 7 中发现崩溃 - [Class1 更新] 发送到实例的无法识别的选择器。 这是不可重现的。 任何人都可以建议我的代码调用中出了什么问题。

+(Class1*)sharedobject{
static dispatch_once_t once;
static Class1 *sharedView;
dispatch_once(&once, ^ { 
 sharedView = [[self alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
});
return sharedView;}
Class2: Class1{
-(void)update {
}
}
Class2 *obj = [self sharedobject]; 

[OBJ 更新];

请注意,sharedobject返回 Class1 的对象。您说update方法仅存在于 Class2 中。然而,你已经写了Class2 *obj = [self sharedobject];,然后试图打电话给update。您已在类 1 的对象上调用了一个在类 1 中不存在的方法。这就是您收到无法识别的选择器异常的原因。

最新更新