在类别中调用[super init]是否与在子类中做相同的事情?如果不是,有什么不同?
发布于 2011-05-29 22:08:04
编辑:以下内容建立在一个有缺陷的前提下,请看josh的回答。
不删除,这仍然是一个有趣的参考,因为它可能会让你误入歧途。
它们是一样的..。在没有引用任何外部讨论的情况下,我们可能会有你说我应该……“用学术答案回答学术问题”。
@implementation categoryTestViewController (ShadowBar)
- (void)viewDidAppear:(BOOL)animated {
//draw the shadow ui nav bar
NSLog(@"super's class = %@, self's class %@",[super class],[self class]);
if ([self class] == [super class]) {
NSLog(@"yeah they are the same");
}
}
@end输出:
2011-05-29 08:06:16.198 categoryTest[9833:207] super's class = categoryTestViewController, self's class categoryTestViewController
2011-05-29 08:06:16.201 categoryTest[9833:207] yeah they are the same调用超级viewDidAppear:将导致不调用任何内容...不是循环,所以我不知道它到底在那里做什么。
https://stackoverflow.com/questions/6168058
复制相似问题