我有一个UIView
继承了该- initWithFrame:
方法的子类。但是,我不希望在我的子类上调用该方法。有没有办法在我的子类上“删除”该方法?
问问题
122 次
1 回答
7
不要实现它,不要调用[super initWithFrame:aRect]
. 只需doesNotRecognizeSelector:
使用_cmd
参数调用:
- (id)initWithFrame:(CGRect)aRect
{
[self doesNotRecognizeSelector:_cmd];
}
如果该方法没有返回void
,您将收到来自编译器的警告:
控制到达非空函数的末尾。
要“删除”此警告,请添加return self;
(在这种情况下)作为最后一行以使编译器满意。它永远不会在运行时到达,因为doesNotRecognizeSelector:
会引发NSInvalidArgumentException
异常。
于 2012-05-27T14:22:16.787 回答