在所有子类

时间:2015-11-11 22:42:46

标签: objective-c

在Objective-C中,给定父类Parent

@interface Parent : NSObject
@end

@implementation
+ (void)load {
  NSLog(@"Hello, World!");
}
@end

以及从Parent继承的多个其他类,例如:

@interface Child1 : Parent
@end

是否可以+[Child# load]调用相同的+[Parent load],而不必为load的所有子类实现Parent

现在,该程序只会打印Hello, World!一次。目标是Hello, World!打印N + 1次,N是从Parent继承的类的数量。

1 个答案:

答案 0 :(得分:4)

您应该使用initialize方法,而不是load方法。

将为每个子类调用initialize方法。如果他们没有明确地实施该方法,那么基类'将调用initialize方法,这就是您想要的方法。

请注意,父类中对self的引用' initialize方法将是对子类的引用。