Skip to content

方法修饰宏NS_DESIGNATED_INITIALIZER、NS_UNAVAILABLE、NS_REQUIRES_SUPER

Deepin edited this page Nov 22, 2021 · 1 revision

修饰符是用来修饰所有方法的,比如查看UIViewController.h,可以看到对方法修饰宏的使用

- (instancetype)initWithNibName:(nullable NSString *)nibNameOrNil bundle:(nullable NSBundle *)nibBundleOrNil NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
  • NS_DESIGNATED_INITIALIZER:表示类的这个方法必须在子类实现
  • NS_UNAVAILABLE:表示类的这个方法在子类不可用
  • NS_REQUIRES_SUPER:表示类的这个方法在子类重写时,必须在方法内部使用super调用父类的这个方法。 若子类重写方法时不想去调用父类的方法,又不想出现警告,可以用下面的方式处理。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
- (void)initUI {
  // [super initUI];
}
#pragma clang diagnostic pop
Clone this wiki locally