NS_UNAVAILABLE 与 NS_DESIGNATED_I

2020-04-30  本文已影响0人  纳兰沫

NS_UNAVAILABLE 与 NS_DESIGNATED_INITIALIZER NS_REQUIRES_SUPER

面对多个初始化方法 不知道哪个方法是正确的方法 这个时候 可以使用NS_UNAVAILABLE 与 NS_DESIGNATED_INITIALIZER来对初始化方法进行描述

- (instancetype)initWithTitle:(NSString *)title date:(NSDate *)date NS_DESIGNATED_INITIALIZER;

如果子类实现了NS_DESIGNATED_INITIALIZER描述的初始化方法 那么必须实现父类的NS_DESIGNATED_INITIALIZER方法

// 作用与 NS_UNAVAILABLE 类似
- (id) init __unavailable;
- (id) init __attribute__((unavailable));
- (id) init UNAVAILABLE_ATTRIBUTE;

// 在调用时给出提示
- (id) init __attribute__((unavailable("Must use initWithFoo: instead.")));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
方法实现
#pragma clang diagnostic pop
上一篇 下一篇

猜你喜欢

热点阅读