Swift初始化程序中的参数名称中的"with"

cfi*_*her 5 cocoa initialization swift

这个初始化器会导致错误抱怨 "with" is implied for the first parameter of an initialiser; did you mean name?

init(withName: String){

}
Run Code Online (Sandbox Code Playgroud)

我不确定这意味着什么,如果它自动提供withName外部参数名称,如果我称之为名称或什么...

如果我改成它

init(name: String){

}
Run Code Online (Sandbox Code Playgroud)

任何试图调用它init(with: "joe")init(withName: "Joe")将失败的尝试.所以我不知道错误信息告诉我什么,以及我如何声明它,所以我称之为init(withName: "joe").

Rob*_*ier 13

在Swift中,您不应该添加with到初始化程序.初始化程序应该是init(name:),您应该将其称为Object(name: "joe").

这是因为Swift方法如何桥接到ObjC.在ObjC中,初始化程序将自动转换为initWithName:.如果你命名init(withName:)它会变成initWithWithName:.

  • 多么可怕的特征.:( (3认同)