在自定义的类中,除了有系统自带的实例化方法外,还可能会有开发者自定义的实例化方法。当不想使用系统自定义方法时,而仅使用自定义的实例化方法时,可以这样做下限制。如下示例所示:
#import <UIKit/UIKit.h>
@interface MYView : UIView
// 限制使用系统方法进行实例化
// 方法1
- (instancetype)init UNAVAILABLE_ATTRIBUTE;
// 方法2
- (instancetype)init __attribute__((unavailable("init 方法不可用,请用 initWithName:")));
- (instancetype)initWithFrame:(CGRect)frame __attribute__((unavailable("initWithFrame 方法不可用,请用 initWithName:view:")));
// 自定义实例化方法
- (instancetype)initWithFrame:(CGRect)frame view:(UIView *)view;
@end