我应该如何编写一个对NSObject
进行子类化的类的init方法如何为此类编写init方法,以便从nib文件加载?
答案 0 :(得分:7)
如果需要在CustomButton中进行自定义初始化,请使用:
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {
/* do initialization here */
}
return self;
}
如果直接在代码中实例化按钮,则只有在nib加载器实例化时才会调用此方法。通过代码实例化意味着您需要使用initWithFrame
来覆盖那个。你可能真的想让initWithCoder和initWithFrame调用相同的initAlways方法或其他东西。
此外,了解“指定初始化程序”的Objective-C概念(在目标C文档中查找)非常重要,因为对于习惯于其他OO语言的人来说,它可能会有点混乱。