在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
继承的类的数量。
答案 0 :(得分:4)
您应该使用initialize
方法,而不是load
方法。
将为每个子类调用initialize
方法。如果他们没有明确地实施该方法,那么基类'将调用initialize
方法,这就是您想要的方法。
请注意,父类中对self
的引用' initialize
方法将是对子类的引用。