Objective-C:init与初始化

在Objective-C中, init方法(即指定类的initialize方法)和initialize方法有什么区别? 什么初始化代码应该放在每个?

-init是一个实例方法,用于初始化一个特定的对象。 +initialize是一个类方法,在类的任何实例被创build之前以及其他类方法运行之前运行。 +initialize并不是你大部分时间使用的东西,但是对于设置类作为一个整体可能使用的任何静态variables,或者在创build任何实例之前确保满足某些条件都是很方便的。

属于-init方法的代码在Objective-C编程语言的实现初始化程序部分有详细的描述。 还有一些关于初始化类的讨论(即+initialize ),以及为什么你可能需要在类对象部分的同一个文档中这样做。 进入+initialize的代码通常会与需要初始化的类的特殊function密切相关。 在+initialize (以及任何类方法)中要记住的一件重要的事情是,类方法中的self指的是类本身,而不是类的实例。

为了为Java开发人员绘制一个并行程序,init就像一个构造函数,而initialize就像一个类的静态块。