我目前在类open var deviceIdentifier: String?
中有一个变量,并且想弃用setter,而只将其变成open private(set) var deviceIdentifier: String?
有没有办法做到这一点?我试图将这两行都放进去,但这显然是Xcode不喜欢的冲突。
@available(*, deprecated)
open var deviceIdentifier: String?
open private(set) var deviceIdentifier: String?
如果我将其更改为计算变量,则编译器很高兴,但我希望避免这种情况。这是唯一的方法,并且可以按预期工作吗?
private var _deviceIdentifier: String?
open var deviceIdentifier: String? {
get {
return _deviceIdentifier
}
@available(*, deprecated)
set(newValue){
}
}
答案 0 :(得分:0)
目前看来,唯一的方法是使用计算变量,但它确实可以按预期工作。
//TODO: put back to non-computed variable when making set private
private var _deviceIdentifier: String?
open var deviceIdentifier: String? {
get {
return _deviceIdentifier
}
@available(*, deprecated)
set(newValue) {
_deviceIdentifier = newValue
}
}
答案 1 :(得分:-2)