假设我有一个名为的变量favoriteFood,它是一个String. 例如,它位于视图控制器上。
我希望它是一个可以获取和设置的普通变量。但是在非常特殊的情况下,我希望能够返回自定义值,例如:
var favoriteFood: String {
if isTuesday {
return "carrots"
} else {
return favoriteFood
}
}
Run Code Online (Sandbox Code Playgroud)
但这会触发大量错误和警告,并且不再让我设置它。
我该怎么做?
创建一个私有的支持属性,并为favoriteFood. setter 应该将值设置为 backing 属性,而 getter 要么"carrots"在满足条件时返回,要么返回backing 属性的值。
private var _favoriteFood: String = ""
var favoriteFood: String {
get {
if isTuesday {
return "carrots"
} else {
return _favoriteFood
}
}
set {
_favoriteFood = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |