是UIView或UIViewController的initWithNibName和initWithCoder方法吗?

时间:2013-08-19 01:36:32

标签: cocoa-touch

似乎我在两者中看到了它们。鉴于他们不相互继承,这很有趣。他们也有一些共同的祖先,但哪一个拥有initWithCoder和iniwWithNibName?

那是什么给了什么?

同样在UIViewController引用类中,根本没有提到initWithCoder

-(id)initWithCoder:(NSCoder *)aDecoder
{
    //NSString * superClass =NSStringFromClass([self superclass]) ;
    self = [self initWithNibName:nil bundle:nil];
    if (self) {
    }
    return self;
}

2 个答案:

答案 0 :(得分:4)

这样的问题应该从参考文档中的搜索开始。

initWithNibName:bundle:UIViewController的方法,没有其他类(扩展UIViewController的类除外)。

initWithCoder:NSCoding协议中声明的方法。符合NSCoding协议的任何类(并且有许多)都将使用initWithCoder:方法。 UIViewUIViewController都实现了NSCoding协议,这意味着这两个类都有initWithCoder:

答案 1 :(得分:0)

initWithCoder,initWithNibName all表示您可以使用.xib文件创建视图。