Objective C子类初始化方法如何调用超类的初始化方法
问题描述:
从Apple的开发站点阅读'objective c guide'时,我收到了一些问号。从这个question我已经知道sub和superclass'initialize'方法被调用。我的问题是;为什么会发生?我从那篇文章中也知道initialize总是被调用的,但是当我从不使用超类本身,并且只有子类时,它甚至是真的。Objective C子类初始化方法如何调用超类的初始化方法
它来到介意这个话题有轻微的相关问题:
- 难道一个子“包含”这是父类,有一些新的方法/变量在一起,或
- 就是一切从超复制到子类?
在第一种情况下,我能够理解,初始化方法将在子类中被发送到“包含”超,在第二个选项,我期望子类的初始化方法来明确地调用[超级初始化] ,它没有。
谢谢!
答
+initialize
调用是特殊的,并且明确地为每个类调用。这是在你习惯看到的正常继承链之外完成的。在第一次访问它们时,将会在每个类,子类和类别(是的,类别都会自己初始化)上调用+initialize
。
超级,谢谢! – Pega88 2012-03-20 06:29:26