我有2类A和B,B是从A继承,A是从NSObject.Class甲继承具有如下功能: - (无效)INIT:目标C init方法和继承
- (void)init {
if (self = [super init]) {
NSLog(@"A");
}
return self;
}
B具有:
- (id)init {
if (self = [super init]) {
NSLog(@"B");
}
return self;
}
编译后,我在我的控制台“A”和“B”的,尽管在B“如果(自= [超级初始化])”不可能是真实的情况,导致其超类的init方法返回void.Any想法?
P.S.我知道init方法必须返回id,我感兴趣的是为什么这个工作,而不应该。
是,警告“回归与空函数” –
IIRC,一些编译器会扔掉返回值的void函数,即使你明确地写出来。它看来,苹果的不对,但它没有什么依赖。这真的是*未定义的行为发挥作用。 – Chuck