我刚刚继承了一个包含Apple's ResearchKit(RK)的iOS项目。
我已经升级到最新版本的RK以及Swift 3.虽然我曾在iOS和RK工作,但我仍然不太自信。无论如何,有一个名为SurveyTask
的类,它从RK实现ORKOrderedTask
。
无法覆盖' init'已被标记为不可用
最后这个函数stepz
已经定义了,我们有:
super.init(identifier: "survey", steps: stepz)
我检查了ORKOrderedTask
类定义,该定义具有init
函数。
我一直在阅读有关initializers的内容但尚未找到任何内容。在override
convenience
之前使用init
或SurveyTask
并不会改变任何内容。同样的错误。任何帮助将不胜感激。
XCode版本8.1。
答案 0 :(得分:6)
以下是您可以模仿无参数初始化程序并避免unavailable
错误的方法:
class MyClass: ParentWithUnavailableInitializer {
init(workaround _: Void = ()) {
// Call a designated initializer
super.init(param: "a very sensible value")
}
}
// At a call site
let obj = MyClass()
适用于Swift 3.2和Swift 4。