这是我的 View Controller 的初始化函数:
- (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 中编写正确的 init 函数
在子类中编码初始值设定项的规则:
- 您应该在指定初始化程序中调用 super 指定初始化程序
- 您应该从其他初始化程序调用您指定的初始化程序
- 为什么在方法名称和参数名称中使用“_”字符,在 Objective-C 中使用驼峰式大小写
- 你应该重写super指定的初始化器,它应该调用你指定的初始化器(因为客户端可以看到super的初始化器)
- 如果您对 UIView 进行子类化,则当随后从 nib 文件加载 View 对象时,不会调用指定的初始值设定项。所以你应该重写两个方法 initWithCoder: 和 - (id)initWithFrame:(CGRect)aRect
- 当您在初始化方法中调用类的某些方法时,它可能是不安全的。因为这些方法可以在您的类的子类中重写。 (你不能像 Java 那样将你的方法标记为 Final)所以要小心
关于ios - 在 IOS 中编写正确的 init 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360066/