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

时间:2014-06-06 05:20:28

标签: swift ios8 ios-app-extension

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

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

当我运行Objective C应用程序时出现,但是当我执行Swift应用程序时却没有。

我在这里错过了什么吗?

4 个答案:

答案 0 :(得分:26)

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

//    init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
//        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
//        // Custom initialization
//    }

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

找到解决方案on the apple developer forums供您参考。

注意:在更改生效之前,您可能需要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
}

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

答案 1 :(得分:3)

  

应用扩展程序目标必须包含arm64(iOS)或x86_64   架构(OS X)在其架构构建设置中。

请参阅Apple's documentation

答案 2 :(得分:2)

Xcode6是测试版,这是一个错误,您将不得不等待新版本。

答案 3 :(得分:1)

我的问题是扩展程序的部署目标设置为与我的应用程序目标不同的版本。您应确认扩展程序的目标已正确设置,因为它可能针对不同的版本。

enter image description here