
@interface myVIEw:UIVIEw
- (ID)init { self = [super init]; if(self){ [self foo]; } return self;}- (ID)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { // Initialization code [self foo]; } return self;}-(voID) foo{ //Build UIVIEw here } 为什么我会使用foo两次
myVIEw *aVIEw = [[myVIEw alloc]init]];
要么
myVIEw *aVIEw = [[myVIEw alloc]initWithFram:aFrame];解决方法@H_404_29@ UIVIEw init调用UIVIEw initWithFrame:.由于您重写了两者,因此调用init方法会导致调用initWithFrame:方法:
换句话说:你的init调用UIVIEw init. UIVIEw init调用initWithFrame:.由于您覆盖了initWithFrame:,因此调用了您的initWithFrame:,后者又调用UIVIEw initWithFrame:.
解决方案,因为你的initWithFrame:将永远被调用,是从你的init方法中删除对foo的调用.
总结以上是内存溢出为你收集整理的ios – 为什么两个init函数都被调用全部内容,希望文章能够帮你解决ios – 为什么两个init函数都被调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)