HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Swift setter和getter问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道有一些与此有关的问题.我知道 swift只能为计算属性定制属性setter和getter.但我认为这是 Swift最糟糕的部分.因为:

>所有变量都暴露在外面.没有私人或公共财产.
>无法访问属性的“内部”变量,如objective-c,_variable@H_801_4@

我的代码是这样的:@H_801_4@

var value : Float = 0.0 {

    willSet {
        SETVALue(newValue,animated: falsE)
    }
}

func SETVALue(newValue:Float,animated:Bool) {

    if(newValue != self.value) {
        // TODO: this will cause problem because I there is no alternative way like Objective-c to access _value
        self.value = ....

        // do whatever I want 
    }
}

问题是在Objective-c中没有_value,self.value将导致值的willSet再次被调用.@H_801_4@

任何的想法?谢谢@H_801_4@

解决方法

willSet没有定义setter.集合.
var privateValue: Float = 0.0;
var value: Float {
  set(newvalue) {
    if newValue != privateValue {
      privateValue = newValue;
      // do whatever I want
    }
  }
  get {
    return privateValue;
  }
}

根据我的理解,privateValue将无法在本地范围之外的任何地方访问,这将解决您的两个投诉. (编辑:可访问性可能有误;请参阅注释.)@H_801_4@

大佬总结

以上是大佬教程为你收集整理的ios – Swift setter和getter问题全部内容,希望文章能够帮你解决ios – Swift setter和getter问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。