+(void)在objective-c类静态变量构造函数中初始化

时间:2010-06-15 06:27:10

标签: iphone objective-c xcode interface constructor

我从here找到了一些示例代码。

static UIImage *backgroundImageDepressed;

/**
 *
 */
@implementation DecimalPointButton

+ (void) initialize {
    backgroundImageDepressed = [[UIImage imageNamed:@"decimalKeyDownBackground.png"] retain];
}

是这样的 - +(void) initialize方法在Objective C中初始化类(接口)的静态变量吗?我以前从未见过这个。

1 个答案:

答案 0 :(得分:17)

+initialize方法在The Objective-C Programming Language中进行了描述。

  

运行时系统在类接收任何其他消息之前以及在其超类收到initialize消息之后向每个类对象发送initialize消息。这使类有机会在使用之前设置其运行时环境。如果不需要初始化,则无需编写initialize方法来响应消息。

例如,当调用[DecimalPointButton alloc]时,运行时将检查是否已调用[DecimalPointButton initialize]。如果没有,它将+initialize该课程。这确保{<1}}图像在构建任何DecimalPointButton实例之前已准备好