【发布时间】:2018-08-15 08:53:16
【问题描述】:
我正在尝试使用以下代码为我的属性创建自定义 setter 方法:
var myProperty: String {
get {
if CONDITION1 {
return CONDITION1_STRING
} else if CONDITION2 {
return CONDITION2_STRING
} else{
return myProperty
}
}
set {
}
}
但这给出了警告:
尝试在自己的 getter 中访问“myProperty”
【问题讨论】:
-
在计算过程中不能引用计算属性,这在逻辑上看起来/感觉/是递归;您可能需要创建一个存储属性(例如
fileprivate var myPrivateProperty: String = "")并且您可以返回它而不是return myPrivateProperty,并且在设置器中您需要为其分配新值,例如myPrivateProperty = newValue工作完成。