类引用说明:
如果您使用标准的init方法来初始化UITableViewController对象,则会创建一个普通样式的表格视图。
我不理解这种行为是从哪里来的 - 我想在一些代码或API中看到它,但是
UITableViewController在其API中没有init方法
某个基类的init如何知道适合派生类的默认样式?
感谢每一个提示
类引用说明:
如果您使用标准的init方法来初始化UITableViewController对象,则会创建一个普通样式的表格视图。
我不理解这种行为是从哪里来的 - 我想在一些代码或API中看到它,但是
UITableViewController在其API中没有init方法
某个基类的init如何知道适合派生类的默认样式?
感谢每一个提示
- (id)init
{
return [self initWithStyle:UITableViewStylePlain];
}
在派生类的文档中,来自超类的方法不会出现,除非派生类覆盖了它并且有重要的信息需要说明。这就是为什么在UITableViewController
的文档中看不到init
的文档,因为UITableViewController
是通过UIScrollView -> UIView -> UIResponder -> NSObject
继承自NSObject
。
至于你提问的第二部分:基类不能(也不应该)知道任何关于派生类的事情。如果一个派生类想要一个不同的默认风格,只需再次覆盖init
即可。
在UITableViewController.m中
- (id) init
{
return [self initWithStyle:UITableViewStylePlain];
}
init
方法将调用指定的初始化器。