我在 swift 中遇到了一个小问题。假设我有一个名为 Pet 的类(class)。 Pet 有一个名称和噪音变量,创建方式如下:
class Pet
{
var name : String = ""
var canMakeNoise : Bool = true
}
现在,当我调用初始化类来创建一只猫时,我可以很容易地这样做:
var cat: Pet()
cat.name = "Garfield"
cat.canMakeNoise = false
这很顺利,但是当尝试使用像这样的文字值直接传递它时:
let cat : Pet("Garfield",true)
或
let cat : Pet(name:"Garfield",canMakeNoise:true)
我收到这个错误:
Swift Compile Error - Extra Argument in call
这是为什么呢?我该如何解决?提前致谢。
最佳答案
如果你想给初始化器添加参数,你需要指定一个新的初始化函数而不是依赖默认函数。在您的情况下,您可以这样做:
class Pet {
var name : String = ""
var canMakeNoise : Bool = true
init( name : String, canMakeNoise : Bool ) {
self.name = name
self.canMakeNoise = canMakeNoise
}
}
var kitty = Pet(name: "Cat", canMakeNoise: true)
关于ios - 创建和调用类初始化程序并传入文字值 Swift 时调用中的额外参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30060102/