【发布时间】:2017-09-27 23:07:40
【问题描述】:
关于重复标志: 这个问题与标记的问题不同,因为我不知道 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
}
}
这些私有变量将使用 setter 进行更新。
所以在为Person 类创建对象时,我正在编写这段代码。
var p1 = Person()
p1.id = "1"
p1.name = "Hemang"
array.append(p1)
也许稍后,我会用一个 setter 更新 signedDate 的值。
所以我不应该用let 创建这个对象。
但是,它向我显示了这个警告:
变量“p1”从未发生变异;考虑更改为 'let' 常量。
如何消除此警告?
如果您需要这方面的更多信息,请告诉我。
【问题讨论】:
-
你为什么不展示你的二传手?
-
警告是不言自明的
-
Google 中的“Swift3 值与引用类型”以了解更多信息。
-
不相关但带有自定义 setter 和 getter 的私有后备变量在 Swift 中是无稽之谈。这不是(Objective-)C。