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

时间:2014-09-03 12:18:03

标签: cocoa swift initialization

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

init(withName: String){

}

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

如果我将其更改为

init(name: String){

}

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

1 个答案:

答案 0 :(得分:13)

在Swift中,您不应将with添加到初始值设定项中。初始值设定项应为init(name:),您应将其称为Object(name: "joe")

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