我把Objective方法转换成Swift。然后,进入Swift代码,我得到了这个错误。我所做的错事,我没有任何约束。
目标-C代码
- (id)initWithCoder:(NSCoder *)aDecoder
{
if ((self = [super initWithCoder:aDecoder])) {
[self loadChecklistItems];
}
return self;
}Swift 2.2代码
convenience required init(coder aDecoder: NSCoder) {
if (self.init(coder: aDecoder)) { // ERROR Here
self.loadChecklistItems()
}
}以下是Swift代码的截图
请告诉我,我做错了什么,什么是正确的代码。
发布于 2016-04-28 17:39:38
该初始化程序是可失败的,这意味着它可以返回零。Swift中的可故障初始化器的语法是:
convenience required init?(coder aDecoder: NSCoder) { // Note the question mark after init此外,如果您从内部调用该初始化器,您的代码将无限循环。我想你的意思是:
convenience required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder) // call super.init, not self.init
self.loadChecklistItems()
}https://stackoverflow.com/questions/36921770
复制相似问题