objective-c – Objective C:我的自定义-init方法没有被调用

我有一个我从UIView派生的类,我想为它创建一个-init类,如下所示:
- (id) init
{
    if (self = [super init]) {
        // my initializations here
    }
    return self;
}

不幸的是,我知道一个事实 – 没有被调用.这是我在.h中定义的方式:

-(id)init;

有谁知道它为什么不被调用

附录:

我发现当我在initWithCoder中进行初始化时,它运行得很好.
添加了initWithFrame,但没有调用.

这是我在IB中指定的对象.

解决方法

UIViewController和UIView有两个指定的初始值设定项,它们是从nib调用的initWithCoder,以及从代码调用的initWithFrame. Init不是这些对象的指定初始值设定项.

如果你想要涵盖两个基础,你可以做这样的事情:

-(void)initializationCodeMethod{
    <#Initialization Code Here#>
}
-(id)initWithFrame:(CGRect)frame{
    if ((self = [super initWithFrame:frame])){
        [self initializationCodeMethod];
    }
    return self;
}
-(id)initWithCoder:(NSCoder *)aDecoder{
    if ((self = [super initWithCoder:aDecoder])){
        [self initializationCodeMethod];
    }
    return self;
}

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...