在Objective-C中,假设您有课程Parent
:
@interface Parent : NSObject
@end
@implementation
+ (void)load {
NSLog(@"class: %@", NSStringFromClass([self class]);
}
@end
和班级Child
:
@interface Child : Parent
@end
如何在+[Child load]
被调用时将其设为Child
而不是名称Parent
?如果我不必在+ (void)load
的每个子类上重写Parent
,我更喜欢。
答案 0 :(得分:1)
假设我们有以下类:
@interface Parent : NSObject
+ (void)logClassName;
@end
@implementation Parent
+ (void)logClassName {
NSLog(@"class: %@", NSStringFromClass(self));
}
@end
@interface Child : Parent
@end
现在我调用logClassName
类方法......
[Parent logClassName];
[Child logClassName];
我得到以下输出 - 如果我说得对 - 正是你想要的:
2015-11-11 22:56:19.029 OOP [676:11008]课程:家长 2015-11-11 22:56:19.030 OOP [676:11008]课程:孩子