Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 便利初始化器不断崩溃,但指定的初始化器工作正常?_Swift_Initialization_Init_Swift Playground_Convenience Methods - Fatal编程技术网

Swift 便利初始化器不断崩溃,但指定的初始化器工作正常?

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

当使用便利初始化器创建实例时,游乐场总是给我这个错误“错误:执行被中断,原因:EXC_BAD_访问(代码=2,地址=0x7ffee5ae9ff8)”,但是当使用指定的初始化器时,它工作正常

我不完全确定是否正确设置了便利初始化器,以便在创建新实例时只需要阿森纳参数

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是否可以使用指定的初始化器默认值?而不是像您上面描述的那样提供默认值,除了
阿森纳
没有默认值。必须在声明中指定默认值请遵守命名约定,结构和类名以大写字母开头。