编写正确的初始化函数在IOS
问题描述:
这里是我的一个视图控制器初始化函数:编写正确的初始化函数在IOS
- (id) initWithStartup: (NSDictionary *) _startup investor: (NSDictionary *) _investor chat_id: (NSString *) _chat_id chat_name: (NSString *) _name
{
self = [self initWithNibName: @"PLNewChatViewController" bundle: nil];
if(self)
{
}
return self;
}
是正常/必须具备以下条件:
self = [self initWithNibName: @"PLNewChatViewController" bundle: nil];
如若XIB文件中加载自动?
答
所以,问题名称:编写正确的初始化函数在IOS
规则在子类编码初始化:
- 你应该调用超类的指定初始化在您指定的初始化
- 你应该打电话给你从其他初始化指定初始化
- 为什么要使用“_”的方法名称的字符,并在参数的名称,在Objective-C使用骆驼
- 你应该重载超指定的初始值设定项,它应该调用你指定的初始值设定项(因为客户端可以看到super的初始化项)
- 如果你继承了UIView,当你的视图对象随后从nib文件加载时,不会调用指定的初始值设定项。所以,你应该覆盖的initWithCoder两种方法:和 - (ID)initWithFrame:方法(的CGRect)aRect
- 当你打电话给你的初始化方法类的一些方法,它可以是不安全的。因为这些方法可以在你的类的子类中重写。 (您不能标记你的方法,最后,就像在Java中)所以,要小心
首先,它应该是自我= [超级.....]答案是,这取决于。这是做这件事的正确方法之一。 – ChrisCM
如果您只是调用'[super init]',它应该从主包中选择合适的名称,假设XIB与类名称相同。 –