Today 扩展不会出现在 Swift 应用程序中,但它会出现在 Objective C 应用程序中。
我所做的是在情节提要上为 swift 和客观的 c 应用程序添加带有一些内容的 UILabel。
它在我运行 Objective C 应用程序时出现,但在我执行 Swift 应用程序时没有出现。
我在这里错过了什么吗?
Today 扩展不会出现在 Swift 应用程序中,但它会出现在 Objective C 应用程序中。
我所做的是在情节提要上为 swift 和客观的 c 应用程序添加带有一些内容的 UILabel。
它在我运行 Objective C 应用程序时出现,但在我执行 Swift 应用程序时没有出现。
我在这里错过了什么吗?
您可以注释掉提供的 init 方法。
// init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
// super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// // Custom initialization
// }
这将允许您的扩展程序正常运行。该问题似乎是由 Swift 和 Objective-C 之间不同的初始化程序行为引起的。删除上述初始化程序将从超类继承所有必需的初始化程序。
在苹果开发者论坛上找到该解决方案供您参考。
注意:您可能必须对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
}
如果您想保留进行自定义初始化的能力。
应用程序扩展目标必须在其架构构建设置中包含 arm64 (iOS) 或 x86_64 架构 (OS X)。
请参阅Apple 的文档
Xcode6 is beta and this is a bug with it, you will have to wait for a new release.