如何在重写方法中强制调用[super methodName...]
?
除了在评论中陈述,还有另一种方式,也许是一招?
答案 0 :(得分:5)
您可以使用objc_required_super
attribute标记该方法:
- (void)foo __attribute__((objc_requires_super));
这样,如果用户没有调用super
,编译器将发出警告。但除了这个警告之外,没有办法真正强制执行它。
AFAIK,仅在dealloc
(使用ARC时)编译器强制执行调用super
。它是通过禁止你自己调用它来实现的,所以它总能安全地注入super
调用。