一尘不染

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

swift

该初始化程序将导致错误提示 "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")


阅读 541

收藏
2020-07-07

共1个答案

一尘不染

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

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

2020-07-07