如何在Swift中静音“永不变异”的警告?

时间:2017-04-30 06:51:50

标签: swift var let

关于重复标记:这个问题与标记的问题不同,因为我在询问如何将警告静音,因为我不知道Swift的概念。下面提供的答案有助于我理解Swift的基本特性。因此,这个问题不应该被标记为重复。

我有一个班级名称Person,其中包含以下变量。

private var _id:String = ""
var id:String {
    get {
        return _id
    }
    set (newId) {
        _id = newId
    }
}

private var _name:String = ""
var name:String {
    get {
        return _name
    }
    set (newName) {
        _name = newName
    }
}

private var _signedDate:Date? = nil
var signedDate:Date {
    get {
        return _signedDate!
    }
    set(newDate) {
        _signedDate = newDate
    }
}

这些私有var将使用setter进行更新。

因此,在为Person类创建对象时,我正在编写此代码。

var p1 = Person()
p1.id = "1"
p1.name = "Hemang"

array.append(p1)

也许以后,我会用setter更新signedDate的值。

所以我不应该用let创建这个对象。

但是,它向我显示了这个警告:

  

变量'p1'从未发生变异;考虑改为'让'不变。

如何将此警告静音?

如果您需要更多相关信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

因为实际上您没有更改Person对象,  使用let,您可以更改对象的properties。但你不能改变object它自己。

因此,请将代码更改为警告引导您的内容。

  

当然,您可以在提出此问题之前尝试。