Iphone 为什么要在初始化方法中检查[self class]==[LevelAppDelegate class]?
在Apple BubbleLevel示例的AppDelegate中,它们执行以下操作:Iphone 为什么要在初始化方法中检查[self class]==[LevelAppDelegate class]?,iphone,cocoa-touch,uikit,Iphone,Cocoa Touch,Uikit,在Apple BubbleLevel示例的AppDelegate中,它们执行以下操作: + (void)initialize { if ([self class] == [LevelAppDelegate class]) { // Register a default value for the instrument calibration. // This will be used if the user hasn't calibrated the i
+ (void)initialize {
if ([self class] == [LevelAppDelegate class]) {
// Register a default value for the instrument calibration.
// This will be used if the user hasn't calibrated the instrument.
NSNumber *defaultCalibrationOffset = [NSNumber numberWithFloat:0.0];
NSDictionary *resourceDict = [NSDictionary dictionaryWithObject:defaultCalibrationOffset forKey:BubbleLevelCalibrationOffsetKey];
[[NSUserDefaults standardUserDefaults] registerDefaults:resourceDict];
}
}
为什么他们会这样做[self class]==[LevelAppDelegate class]?此测试确保在加载子类时调用initialize时初始化代码无效
[self class]==[LevelAppDelegate class]
是否等同于[self isMemberOfClass:[LevelAppDelegate class]]
?