objective-c – Objective C:我的自定义-init方法没有被调用
发布时间:2020-12-16 07:49:40 所属栏目:百科 来源:网络整理
导读:我有一个我从UIView派生的类,我想为它创建一个-init类,如下所示: - (id) init{ if (self = [super init]) { // my initializations here } return self;} 不幸的是,我知道一个事实 – 没有被调用.这是我在.h中定义的方式: -(id)init; 有谁知道它为什么不被
我有一个我从UIView派生的类,我想为它创建一个-init类,如下所示:
- (id) init { if (self = [super init]) { // my initializations here } return self; } 不幸的是,我知道一个事实 – 没有被调用.这是我在.h中定义的方式: -(id)init; 有谁知道它为什么不被调用? 附录: 我发现当我在initWithCoder中进行初始化时,它运行得很好. 这是我在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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |