iOS既没有调用init也没有调用initWithCoder [关闭]

Posted

技术标签:

【中文标题】iOS既没有调用init也没有调用initWithCoder [关闭]【英文标题】:iOS neither init or initWithCoder are been called [closed] 【发布时间】:2013-08-07 19:04:55 【问题描述】:

我在viewController 中添加了一个tableView,我需要初始化一些属性。但是-(id)init- (id)initWithCoder:(NSCoder*)aDecoder 都没有被调用。

我的头文件:

@interface myViewController : UIViewController <UITableViewDelegate,UITableViewDataSource>

你们中的任何人都知道为什么或如何调用任何一个 init 方法吗?

非常感谢您的帮助

【问题讨论】:

initWithNibName:bundle: 被调用了吗? 如何初始化 myViewController 的实例? 已在 AppDelegate 中初始化 他的意思是显示你在 AppDelegate 中初始化 ViewController 的代码。 【参考方案1】:

UIViewController reference 声明 initWithNibName:bundle: 是指定的初始值设定项。如果您在初始化期间做一些事情,那是您应该覆盖的那个。

更新: 没错,正如 Simon 所指出的,如果您使用情节提要,您将覆盖 initWithCoder:(尽管我认为 OP 不是,正如他所说,initWithCoder: 没有得到调用)。

【讨论】:

如果您是从情节提要中实例化它,则不会!在这种情况下,被调用的初始化程序是 -initWithCoder:

以上是关于iOS既没有调用init也没有调用initWithCoder [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

即使在 [[UIPickerView alloc] init] 之后设置了委托,也没有调用 UIPickerView 委托方法

没有 xib 文件的 alloc/init 初始化视图控制器不调用 viewDidUnload

为啥使用 JSONDecoder.decode 方法时没有调用 Decodable 的 init 方法?

C中的init()函数调用

为啥在我的自定义 UIView 类中没有调用 init(frame: CGRect)?

PhoneGap 推送插件不注册 iOS 8 设备