Ios 防止在子类中调用继承的方法

Ios 防止在子类中调用继承的方法,ios,objective-c,Ios,Objective C,我有一个子类UIView,它继承了-initWithFrame:方法。但是,我不希望在我的子类上调用该方法。 有没有办法在我的子类上“删除”该方法?不要实现它,也不要调用[super initWithFrame:aRect]。只需使用\u cmd参数调用: - (id)initWithFrame:(CGRect)aRect { [self doesNotRecognizeSelector:_cmd]; } 如果该方法未返回void,您将收到来自编译器的警告: 控件到达非void函数的末

我有一个子类
UIView
,它继承了
-initWithFrame:
方法。但是,我不希望在我的子类上调用该方法。
有没有办法在我的子类上“删除”该方法?

不要实现它,也不要调用
[super initWithFrame:aRect]
。只需使用
\u cmd
参数调用:

- (id)initWithFrame:(CGRect)aRect
{
    [self doesNotRecognizeSelector:_cmd];
}
如果该方法未返回
void
,您将收到来自编译器的警告:

控件到达非void函数的末尾

要“删除”此警告,请添加
return self(在本例中)作为使编译器满意的最后一行。在运行时将永远不会到达它,因为
未识别选择器:
引发
NSInvalidArgumentException
异常。

这会生成一条警告“控件到达非无效函数的末尾”。有没有办法删除该警告?