iPhone - 我应该如何编写init方法?

时间:2010-10-15 15:53:49

标签: iphone objective-c initialization nib

我应该如何编写一个对NSObject

进行子类化的类的init方法
  • 假设我有一个名为的课程: CustomButton子类化UIButton
  • 我有一个名为空的nib文件 CustomButton.nib有一个单一的 UIButton就在其中。
  • 在IN界面构建器中,按钮的类名设置为“CustomButton”

如何为此类编写init方法,以便从nib文件加载?

1 个答案:

答案 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语言的人来说,它可能会有点混乱。