除非我误解了,否则 Apple 文档中的这个LINK明确指出类初始化程序“+ (void)initialize)”每个类只执行一次。
这是摘录:
特别注意事项
initialize 每个类只调用一次。如果要对类和类的类别执行独立的初始化,则应实现加载方法。
但是,我的项目出现了一个奇怪的行为,并且初始化程序被执行了两次。所以我必须检查 _classContext 是否为空。我只有一个有这种方法的类。发生这种情况的可能原因是什么?
我正在使用 XCode 4.5.2 和 OS X 10.8.2。我有多个 iOS 模拟器,iPhone 5.1 和 6.0。
+ (void) initialize
{
num++;
NSLog([NSString stringWithFormat:@"Times: %i", num]);
if(_classContext == nil)
_classContext = [[myClass alloc] init];
}