objective-c – 当未调用[超级方法]时发出警告

当不使用ARC时,如果不在dealloc方法中调用[super dealloc],则会收到警告。

我试图实现类似于一个类,它经常被子类化以警告实现子类的人,当他们不调用超级。

有任何想法吗?

llvm的最近版本添加了一个属性,指示子类必须调用super:

@interface Barn:NSObject
- (void)openDoor __attribute__((objc_requires_super));
@end

@implementation Barn
- (void) openDoor
{
    ;
}
@end

@interface HorseBarn:Barn
@end
@implementation HorseBarn
- (void) openDoor
{
    ;
}
@end

编译以上产生警告:

Method possibly missing a [super openDoor] call
http://stackoverflow.com/questions/16094095/give-warning-when-super-method-is-not-called

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:objective-c – 当未调用[超级方法]时发出警告