美文网首页iOS开发专题IOS三人行
Objective-C 类中init与initialize的区别

Objective-C 类中init与initialize的区别

作者: TeslaChen | 来源:发表于2015-09-02 02:38 被阅读755次

    两个方法名字长的很像,所以一定有相似的作用,身上都贴着“一次”的标签。

    区别##

    • init是“-”开头的方法

    • initialize是“+”开头的类方法

    • init在类实例化(new)的时候就会调用一次[ClassName new]相当于[[class alloc]init],我们对init应该是很熟悉的,大多数时候我们不使用new来实例化,而是直接定义自己的init方法通过[[ClassName alloc]initWithXXX]这样来做。

    • initialize在向类发送消息的时候调用一次:什么是发送消息?实例化一个对象[ClassName new]是发送消息,调用一个类方法[ClassName method]也是向这个类发送消息。

    • 在new的时候,initialize方法会在init之前先调用

    • 只要new一次,init就会调用一次,new多少次,init就调用多少次,但initialize只会调用一次

    • 如果子类没有实现initialize的重写,在子类收到消息的时候,会调用两次initialize,一次是父类调用的,一次是子类调用的。

    相关文章

      网友评论

        本文标题:Objective-C 类中init与initialize的区别

        本文链接:https://www.haomeiwen.com/subject/lndmqttx.html