iOS 8 Beta Today扩展小部件未在Swift应用中显示?

esh*_*esh 19 swift ios8 ios-app-extension

今天的扩展程序没有出现在Swift应用程序中,但它在Objective C应用程序中出现.

我所做的是在故事板上为快速和客观的c应用添加一些带有一些内容的UILabel.

它出现在我运行Objective C应用程序时,但不是在我执行Swift应用程序时.

我在这里错过了什么吗?

San*_*aus 26

您可以注释掉提供的init方法.

//    init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
//        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
//        // Custom initialization
//    }
Run Code Online (Sandbox Code Playgroud)

这将允许您的扩展程序正常运行.这个问题似乎是由Swift和Objective-C之间不同的初始化程序行为引起的.删除上面的初始化程序将从超类继承所有必需的初始值设定项.

在apple developer论坛上找到该解决方案供您参考.

注意:Clean and Build在更改生效之前,您可能需要执行此项目

扩展名实际上是崩溃的,错误如下:

fatal error: use of unimplemented initializer 'init(coder:)' for class 'com_blabla_blabla_MyTodayExtension.TodayViewController'
Run Code Online (Sandbox Code Playgroud)

这表明另一种选择是实施:

init(coder aDecoder: NSCoder!) {
    super.init(coder: aDecoder)
    // Custom initialization here
}
Run Code Online (Sandbox Code Playgroud)

如果你想保留自定义初始化的能力.

  • @ n00neimp0rtant这也包括[这里](http://stackoverflow.com/a/24036440/2446155) (3认同)