我正在尝试从Bluemix上的Mobile Data SDK中继承http://127.0.0.1:5000/ringdown/handle?sorry=&stack=%2B17033145109
。在Objective-C中编写的IBMDataObject
框架,所以我试图覆盖的init方法如下所示:
IBMData
在Swift中使用它,它会转换为:
- (instancetype)initWithClass:(NSString *)classname;
这必须与Swift中的命名约定检查冲突,因为我得到错误:
在init方法名称中使用单词class似乎会导致问题,因为自动修复会删除init!(withClass classname: String!) {
super.init(withClass: classname)
}
并放入关键字withClass
。
我不确定是否有针对此的解决方法,可能是警告抑制?或者class
init方法是否需要更改它的名称?
答案 0 :(得分:1)
我遇到了同样的错误,通过改变覆盖方法修复了它:
required override init() {
super.init(withClass: "Item")
}
由于init方法需要接收字符串参数。 <(NSString *)classname;>>
还将init方法更改为:
init(className: String){
super.init(withClass: className)
}
希望它有所帮助。