我知道字面意思大概是完成父类的初始化,看看返回的是不是nil如果是nil就无法实现自己的初始化方法。
可不可以这样理解,就是自己的初始化方法其实和普通的方法一样,只有调用了在NSObject里的init方法后才能叫做自己的初始化方法
其实我还不是特别理解,希望又大神可以指导一下

解决方案 »

  1.   


    其实就是一个类继承,子类调用父类的方法,因为你重载了父类的init函数,正常情况下,在对象初始化时就会进入你的init方法,父类的方法不会被调用到,而父类有一些初始化操作也是必须执行的,因此这种时候,就优先让父类初始化完毕,在执行子类自己的方法。
      

  2.   

    是不是像这样的方法
    - (id) initWithAge:(int)age;
    如果写成这样
    - (id) a :(int)age;
    只要是这个方法里最后返回了self就是一个初始化方法了?(ps:我知道这样的命名是不对的,就是想知道是不是只要是return self,这个方法就是一个初始化方法了???)
      

  3.   


    不是的,跟名字,返回值都没关系,就看你的方法是不是用来初始化的,仅此而已。
    如果你约定了- (id) a :(int)age;是你这个对象的初始化方法,那么- (id) a :(int)age;就是初始化方法。
    NSObject的初始化方法是-(id)init,所以后续的继承也就有了这个初始化方法,无非如果你的子类没实现-(id)init,那么将直接会调用到父类的-(id)init。
      

  4.   

    @dream238,回答得非常到位!!!