我从here找到了一些示例代码。
static UIImage *backgroundImageDepressed;
/**
*
*/
@implementation DecimalPointButton
+ (void) initialize {
backgroundImageDepressed = [[UIImage imageNamed:@"decimalKeyDownBackground.png"] retain];
}
是这样的 - +(void) initialize
方法在Objective C中初始化类(接口)的静态变量吗?我以前从未见过这个。
答案 0 :(得分:17)
此+initialize
方法在The Objective-C Programming Language中进行了描述。
运行时系统在类接收任何其他消息之前以及在其超类收到
initialize
消息之后向每个类对象发送initialize
消息。这使类有机会在使用之前设置其运行时环境。如果不需要初始化,则无需编写initialize
方法来响应消息。
例如,当调用[DecimalPointButton alloc]
时,运行时将检查是否已调用[DecimalPointButton initialize]
。如果没有,它将+initialize
该课程。这确保{<1}}图像在构建任何DecimalPointButton实例之前已准备好。