object c的initWith方法的疑问 -(myClass *) initWith:(int) n :(int) m{ self = [super init];//书本用这行 1 //[self init]; //测试也通过 2 if (self) { [self setNum1:n andNum2:m]; } return self;}请问,1,2两处是否等价?为什么书本要调用super的init ?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 self = [super init];//书本用这行 1 //[self init]; //测试也通过 2关于1:super init是调用父类的初始化函数,如果子类需要父类的某些资源是需要如此的,self=[super init],指子类指针指向父类的资源关于2:初始化子类资源,比如子类有个NSString * str=[[NSString alloc]init];会调用该方法,其实在init函数里面,-(id)init{return self;}也是可以运行的,但如果工程复杂的话不行,如子类大量使用父类的资源,这也就是为什么在子类的dealloc中有[super dealloc]的原因,另,OC是2阶段构造的及alloc和init是分开的,init前已经分配的控件,init只是完成初始化而已,希望明白,建议自己重写init多试试就好了 -(myClass *) initWith:(int) n :(int) m{ self = [super init];//这样写,表示:只能通过 with 的初始化,调用 init 没有对应的初始化操作。 //[self init]; //如果自己的类没有实现 init 函数,这句等同于上一句。 if (self) { [self setNum1:n andNum2:m]; } return self;} 利用SDWebImage 异步加载图片的话,怎么跟踪进度? iPhone 的下载进度怎么弄? 如何实现textfield控件的移动 IPhone 怎么检测它是否在进行数据传输 求个正则式替换字符串的方法 ios开发,关于动画没用效果,鸟 iOS百度地图初始化失败 XCode6中prefix.pch问题 CABasicAnimation为何不重复执行动画? 求助!更新Xcode9后,我程序所有添加左滑删除的列表 左滑都失效 不走代理方法了 UITableViewController上下拖动后,自动回滚 移动手机链接服务器问题
//[self init]; //测试也通过 2
关于1:super init是调用父类的初始化函数,如果子类需要父类的某些资源是需要如此的,self=[super init],指子类指针指向父类的资源
关于2:初始化子类资源,比如子类有个NSString * str=[[NSString alloc]init];会调用该方法,其实在init函数里面,
-(id)init
{return self;}也是可以运行的,但如果工程复杂的话不行,如子类大量使用父类的资源,这也就是为什么在子类的dealloc中有[super dealloc]的原因,另,OC是2阶段构造的及alloc和init是分开的,init前已经分配的控件,init只是完成初始化而已,希望明白,建议自己重写init多试试就好了
-(myClass *) initWith:(int) n :(int) m
{
self = [super init];//这样写,表示:只能通过 with 的初始化,调用 init 没有对应的初始化操作。
//[self init]; //如果自己的类没有实现 init 函数,这句等同于上一句。
if (self)
{
[self setNum1:n andNum2:m];
}
return self;
}