为什么要在自己的初始化方法里调用[super init] 我知道字面意思大概是完成父类的初始化,看看返回的是不是nil如果是nil就无法实现自己的初始化方法。可不可以这样理解,就是自己的初始化方法其实和普通的方法一样,只有调用了在NSObject里的init方法后才能叫做自己的初始化方法其实我还不是特别理解,希望又大神可以指导一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实就是一个类继承,子类调用父类的方法,因为你重载了父类的init函数,正常情况下,在对象初始化时就会进入你的init方法,父类的方法不会被调用到,而父类有一些初始化操作也是必须执行的,因此这种时候,就优先让父类初始化完毕,在执行子类自己的方法。 是不是像这样的方法- (id) initWithAge:(int)age;如果写成这样- (id) a :(int)age;只要是这个方法里最后返回了self就是一个初始化方法了?(ps:我知道这样的命名是不对的,就是想知道是不是只要是return self,这个方法就是一个初始化方法了???) 不是的,跟名字,返回值都没关系,就看你的方法是不是用来初始化的,仅此而已。如果你约定了- (id) a :(int)age;是你这个对象的初始化方法,那么- (id) a :(int)age;就是初始化方法。NSObject的初始化方法是-(id)init,所以后续的继承也就有了这个初始化方法,无非如果你的子类没实现-(id)init,那么将直接会调用到父类的-(id)init。 @dream238,回答得非常到位!!! 求大神指点迷经(ARC下pushViewController内存泄漏) COCOS2D-X背景音乐播放与暂停问题 iphone推送群 关于CALayer的使用 有没有iphone,itouch在条形码和二维码下的案例 ipad在线显示pdf文件 求助 mac 安装openfire 不能运行 有关ActionSheet的protocol methods,为什么有一些不起作用? 请问tableView 播放多个视频卡顿怎么解决 mac本打不开页面 将siphon 中的代码整合到我的工程里面 mac库文件系统目录
其实就是一个类继承,子类调用父类的方法,因为你重载了父类的init函数,正常情况下,在对象初始化时就会进入你的init方法,父类的方法不会被调用到,而父类有一些初始化操作也是必须执行的,因此这种时候,就优先让父类初始化完毕,在执行子类自己的方法。
- (id) initWithAge:(int)age;
如果写成这样
- (id) a :(int)age;
只要是这个方法里最后返回了self就是一个初始化方法了?(ps:我知道这样的命名是不对的,就是想知道是不是只要是return self,这个方法就是一个初始化方法了???)
不是的,跟名字,返回值都没关系,就看你的方法是不是用来初始化的,仅此而已。
如果你约定了- (id) a :(int)age;是你这个对象的初始化方法,那么- (id) a :(int)age;就是初始化方法。
NSObject的初始化方法是-(id)init,所以后续的继承也就有了这个初始化方法,无非如果你的子类没实现-(id)init,那么将直接会调用到父类的-(id)init。