今天,扩展程序未在Swift应用程序中显示,但在Objective C应用程序中显示。
我要做的就是在故事板上添加一个UILabel,其中包含一些内容,用于快速,客观的c应用程序。
它是在我运行Objective C应用程序时显示的,而在我执行Swift应用程序时却没有显示。
我在这里想念什么吗?
您可以注释掉提供的init方法。
// init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { // super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) // // Custom initialization // }
这将使您的扩展程序正常运行。这个问题似乎是由Swift和Objective-C之间的初始化行为不同引起的。删除上述初始化器将继承超类的所有必需初始化器。
在Apple开发人员论坛上找到了该解决方案,以供您参考。
注意:Clean and Build执行此操作后,您可能需要对项目进行更改才能生效
Clean and Build
该扩展程序实际上是 崩溃的 ,并显示如下错误:
fatal error: use of unimplemented initializer 'init(coder:)' for class 'com_blabla_blabla_MyTodayExtension.TodayViewController'
这表明另一个选择是实现:
init(coder aDecoder: NSCoder!) { super.init(coder: aDecoder) // Custom initialization here }
如果您想保留执行自定义初始化的能力。