我有个小问题。假设我有一个叫做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编译错误-调用中的额外参数
这是为什么?我该如何解决?提前致谢。
最佳答案
如果要向初始化程序添加参数,则需要指定一个新的init函数,而不要依赖默认函数。这是您在情况下的处理方式:
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 - 创建和调用类初始化程序并传递文字值时,调用中的额外参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30060102/