NS_DESIGNATED_INITIALIZER
1.作用:
用來指定init初始化方法為指定構(gòu)造方法
可用于interface 或者extension
- (instancetype)initWithTitle:(NSString*)title icon:(NSString*)iconNS_DESIGNATED_INITIALIZER;
注意:如果用在類方法中,則報錯谓厘。
2.實現(xiàn)中嗅榕,需要重寫init方法調(diào)用指定構(gòu)造方法(designated method)
- (instancetype)init {
if(self= [self initWithTitle:nilicon:nil]) {
}
returnself;
}
3.使用場景
如果需要指定構(gòu)造方法
4.使用的地方
AFN的AFHTTPRequestOperationManager,通過url初始化一個操作管理者
- (instancetype)initWithBaseURL:(NSURL*)urlNS_DESIGNATED_INITIALIZER;
AVFoundation 的 AVAssetExportSession通過一個asset初始化一個session
- (nullableinstancetype)initWithAsset:(AVAsset*)asset presetName:(NSString*)presetNameNS_DESIGNATED_INITIALIZER;
...
需要更深層的了解參考:實現(xiàn)原理