- (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;}总结
以上是内存溢出为你收集整理的objective-c – Objective C:我的自定义-init方法没有被调用全部内容,希望文章能够帮你解决objective-c – Objective C:我的自定义-init方法没有被调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)