+(无效)初始化在Objective-C类静态变量构造函数
问题描述:
我发现从here一些示例代码。+(无效)初始化在Objective-C类静态变量构造函数
static UIImage *backgroundImageDepressed;
/**
*
*/
@implementation DecimalPointButton
+ (void) initialize {
backgroundImageDepressed = [[UIImage imageNamed:@"decimalKeyDownBackground.png"] retain];
}
是这样的 - +(void) initialize
方法在目标C中初始化一个类(接口)的静态变量?我从来没有见过这个。
答
这个+initialize
方法描述在The Objective-C Programming Language。
运行时系统发送一个
initialize
消息给每个类对象类接收到任何其它的消息之前和它的超类之后已接收到initialize
消息。这使得该类有机会在使用之前设置其运行时环境。如果不需要初始化,则不需要编写initialize
方法来响应消息。
例如,当调用[DecimalPointButton alloc]
时,运行时将检查是否已调用[DecimalPointButton initialize]
。如果不是的话,它将会是+initialize
这个班。这确保backgroundImageDepressed
图像准备好之前 DecimalPointButton的任何实例都被构造。