黑马程序员技术交流社区
标题: 这个程序没有调用任何方法但是有结果,求大神解释原因 [打印本页]
作者: 康佳兴 时间: 2014-6-14 22:15
标题: 这个程序没有调用任何方法但是有结果,求大神解释原因
本帖最后由 康佳兴 于 2014-6-17 14:15 编辑
#import <Foundation/Foundation.h>
@interface Person : NSObject
@end
@interface Student : Person
@end
@interface GoodStudent : Student
@end
int main()
{
Student *s = [[Student alloc] init];
return 0;
}
@implementation Student
+ (void)load
{
NSLog(@"Student+load");
}
+ (void)initialize
{
NSLog(@"Student+initialize");
}
@end
@implementation GoodStudent(MJ)
+ (void)load
{
NSLog(@"GoodStudent-MJ+load");
}
+ (void)initialize
{
NSLog(@"GoodStudent-MJ+initialize");
}
@end
@implementation GoodStudent
+ (void)load
{
NSLog(@"GoodStudent+load");
}
+ (void)initialize
{
NSLog(@"GoodStudent+initialize");
}
@end
@implementation Person
+ (void)load
{
NSLog(@"Person+load");
}
+ (void)initialize
{
NSLog(@"Person+initialize");
}
@end
作者: agelessman 时间: 2014-6-14 22:45
重写了方法啊
作者: 康佳兴 时间: 2014-6-14 22:45
那个……能不能说详细一点?
作者: 康佳兴 时间: 2014-6-14 22:47
我记得是那块讲来着……但是找不到具体哪个地方了?
作者: siegee 时间: 2014-6-17 10:30
load是只要类所在文件被引用就会被调用,而initialize是在类或者其子类的第一个方法被调用前调用。所以如果类没有被引用进项目,就不会有load调用;但即使类文件被引用进来,但是没有使用,那么initialize也不会被调用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |