- 标记方法为不可继承:
- 在Objective - C中,使用
__attribute__((objc_requires_super))
可以标记一个方法,子类重写该方法时必须调用父类的实现。
- 示例代码:
@interface ParentClass : NSObject
- (void)commonMethod __attribute__((objc_requires_super));
@end
@implementation ParentClass
- (void)commonMethod {
NSLog(@"ParentClass's commonMethod");
}
@end
@interface ChildClass : ParentClass
@end
@implementation ChildClass
- (void)commonMethod {
[super commonMethod];
NSLog(@"ChildClass's commonMethod");
}
@end
- 作用:确保子类在重写该方法时,不会遗漏父类的关键逻辑,有助于代码的一致性和维护性。
- 标记方法为已弃用:
- 使用
__attribute__((deprecated))
可以标记一个方法为已弃用,当其他代码调用该方法时,编译器会发出警告。
- 示例代码:
@interface DeprecatedClass : NSObject
- (void)oldMethod __attribute__((deprecated));
@end
@implementation DeprecatedClass
- (void)oldMethod {
NSLog(@"This is an old method.");
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
DeprecatedClass *obj = [[DeprecatedClass alloc] init];
[obj oldMethod];// 编译器会发出警告,提示该方法已弃用
}
return 0;
}
- 作用:通知开发者该方法不建议继续使用,可能有更好的替代方法,有助于代码的升级和优化。