alloc
是否与内存分配有关init
(或者initX
等等,init
系列)与在创建对象时根据需要配置分配的内存有关 - 现在或将来某些修订后的任何特定类是否需要执行任何工作in init
依赖于该类的语义.但是,由于您不知道任何类是否init
需要执行任何工作,您必须调用它,并且任何任意类都不知道它的超类是否需要进行任何初始化以必须init
在其自己内部调用其超类init
.对于这个工作链NSObject
必须有一个init
,它恰好它(目前,谁知道在将来)没有工作.NSObject
这init
是链条的终结,也是唯一一个不需要调用另一个链条的链条init
.
一些语言将两种操作(分配和初始化)组合成一个不可分割的操作(例如new
Java),因此出现了混淆.事实上,Cocoa有一个new
定义如下alloc
的init
.
苹果应该真的写了:
NSObject类中定义的init方法当前不进行初始化; 它只是回归自我.
或者干脆什么也没说.
HTH
alloc
是否与内存分配有关init
(或者initX
等等,init
系列)与在创建对象时根据需要配置分配的内存有关 - 现在或将来某些修订后的任何特定类是否需要执行任何工作in init
依赖于该类的语义.但是,由于您不知道任何类是否init
需要执行任何工作,您必须调用它,并且任何任意类都不知道它的超类是否需要进行任何初始化以必须init
在其自己内部调用其超类init
.对于这个工作链NSObject
必须有一个init
,它恰好它(目前,谁知道在将来)没有工作.NSObject
这init
是链条的终结,也是唯一一个不需要调用另一个链条的链条init
.
一些语言将两种操作(分配和初始化)组合成一个不可分割的操作(例如new
Java),因此出现了混淆.事实上,Cocoa有一个new
定义如下alloc
的init
.
苹果应该真的写了:
NSObject类中定义的init方法当前不进行初始化; 它只是回归自我.
或者干脆什么也没说.
HTH