今天的扩展程序没有出现在Swift应用程序中,但它在Objective C应用程序中出现。
我所做的是在故事板上为快速和客观的c应用添加一些UILabel。
当我运行Objective C应用程序时出现,但是当我执行Swift应用程序时却没有。
我在这里错过了什么吗?
答案 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)在其架构构建设置中。
答案 2 :(得分:2)
Xcode6是测试版,这是一个错误,您将不得不等待新版本。
答案 3 :(得分:1)