【发布时间】:2014-07-27 18:02:49
【问题描述】:
当您使用指定的初始化器(例如,initWithNibName:bundle:UIViewController 的子类)子类化一个类,并且需要提供您自己的指定初始化器时,Big Nerd Ranch 书说要提供您自己的指定初始化器并覆盖指定的初始化器超类的初始化程序来调用您自己的新指定初始化程序。但是如果需要额外的参数怎么办?
具体来说是这样的:
@interface MyViewController : UIViewController
- (instancetype)initWithNibName:(NSString *)nibNameOrNil
bundle:(NSBundle *)nibBundleOrNil
andDummyObj:(DummyObj*)p
withDelegate:(id<DummyObjEditDelegate>)delegate;
@end
我猜想重写超类委托的重点是如果我的子类是从 nib 文件中取消归档的,那么要正确配置它吗?但是如果有人调用超类指定的初始化程序,他们将无法提供委托,我需要正确设置它。
谢谢。
【问题讨论】:
标签: ios objective-c