在可可,为NSObject
S,不应同时init
和initialize
是类方法?为什么-init实例方法和+初始化类的方法?
0
A
回答
3
+initialize
可以被覆盖(这是可选)执行类范围内的初始化。 -init
执行类的单个实例的初始化,虽然它通常由在从NSObject的派生类添加参数精制(例如:的UIView的initWithFrame:
方法)。
由于-init
初始化的单个实例(具体地,它可以访问的实例的变量),它不能是一个类的方法。
1
从文档:
运行时发送刚刚类,或从它继承的任何类之前初始化到程序中的每个类,从程序中发送它的第一个消息。
这意味着,在第一次发送一个消息到类,无论是alloc
或一些定义的类的方法,initialize
首先被调用一次,对于应用程序的整个运行。相对于load
,有可能包括在项目中的一类,不能击打initialize
。
init
,在另一方面,是
由子类实现以用于已分配的内存之后立即初始化一个新的对象(接收器)。
含义,init
纯属用于初始化类实例。
编辑 -
继编辑的问题,alloc
创建实例,同时init
初始化它,这就是为什么alloc
是一个类的方法和init
是一个实例方法。
相关问题
- 1. Obj-C,初始化阶段,从类方法到实例方法
- 2. 子类init方法只调用基础初始化方法
- 3. 从初始化调用实例方法
- 4. 当我调用类的实例方法时,为什么初始化不会显示为方法?
- 5. 类初始化和同步类方法
- 6. 为什么init不是类方法?
- 7. 为什么Xcode会认为实例方法是类方法?
- 8. 通过其方法初始化该类的新实例
- 9. 使用类中的方法初始化实例变量
- 10. 类def方法初始化为0?
- 11. 切片类型的初始化方法无法初始化
- 12. Objective-c是超级初始化类方法还是实例方法?
- 13. 初始化方法
- 14. 传递实例方法回调类初始化
- 15. 为什么要在python中使用类方法实例方法
- 16. 为什么调用实例化的PHP类方法?
- 17. 为什么实例和静态内部类初始化不同?
- 18. 使用超类方法初始化与初始化方法之间的区别
- 19. 实现初始化实例的抽象方法
- 20. NSInvocationOperation init从类方法返回nil调用实例方法
- 21. 这两种初始化PHP类的方法有什么区别?
- 22. 初始化类成员的最佳方法是什么?
- 23. 看看什么叫一个类的初始化方法
- 24. 初始化中计算实例变量的最简洁方法是什么?
- 25. 为什么核心动画方法是类方法而不是实例方法?
- 26. 用父类的实例属性初始化子类Kotlin类的快速方法
- 27. PyQt子类的初始化方法QTableWidgetItem
- 28. 模拟ruby类的初始化方法?
- 29. Python:初始化类中的方法
- 30. NSArray的初始化方法