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
异常。这会生成一条警告“控件到达非无效函数的末尾”。有没有办法删除该警告?