码迷,mamicode.com
首页 > 其他好文 > 详细

init 和 initialize 差距在哪里 oc

时间:2016-04-09 00:13:30      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

网友解答:

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,一次是父类调用的,一次是子类调用的。

 

init 和 initialize 差距在哪里 oc

标签:

原文地址:http://www.cnblogs.com/williamliuwen/p/5370416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!