Swift 便利初始化器不断崩溃,但指定的初始化器工作正常?
当使用便利初始化器创建实例时,游乐场总是给我这个错误“错误:执行被中断,原因:EXC_BAD_访问(代码=2,地址=0x7ffee5ae9ff8)”,但是当使用指定的初始化器时,它工作正常 我不完全确定是否正确设置了便利初始化器,以便在创建新实例时只需要阿森纳参数Swift 便利初始化器不断崩溃,但指定的初始化器工作正常?,swift,initialization,init,swift-playground,convenience-methods,Swift,Initialization,Init,Swift Playground,Convenience Methods,当使用便利初始化器创建实例时,游乐场总是给我这个错误“错误:执行被中断,原因:EXC_BAD_访问(代码=2,地址=0x7ffee5ae9ff8)”,但是当使用指定的初始化器时,它工作正常 我不完全确定是否正确设置了便利初始化器,以便在创建新实例时只需要阿森纳参数 class FootballTeams { var liverpool: String var chelsea: String var manchesterunited: String var arsenal: String
class FootballTeams {
var liverpool: String
var chelsea: String
var manchesterunited: String
var arsenal: String = "fourth"
init(arsenal:String, chelsea:String,
liverpool: String, manchesterunited:String ) { //designated initialiser
self.arsenal = arsenal
self.chelsea = chelsea
self.liverpool = liverpool
self.manchesterunited = manchesterunited
}
convenience init(arsenal: String){
self.init(arsenal: arsenal) //call to designated initialiser above
self.arsenal = arsenal
}
}
let properInstance = FootballTeams(arsenal: "Overides stored property value", chelsea: "a", liverpool: "b", manchesterunited: "b")
print(properInstance.arsenal)
let convenienceInstance = FootballTeams(arsenal: "This is an instance from the convenience init")
print(convenienceInstance.arsenal)
你正在运行一个无限循环,你没有看到警告吗 通过此函数的所有路径都将调用自身
这意味着
init(阿森纳
调用init(阿森纳
哪个调用init(阿森纳
哪个调用init)(阿森纳
哪个调用init(阿森纳
感谢您的解释!我还是Swift新手。这真的很有帮助,在方便的情况下,init是否可以使用指定的初始化器默认值?而不是像您上面描述的那样提供默认值,除了阿森纳
没有默认值。必须在声明中指定默认值请遵守命名约定,结构和类名以大写字母开头。