美文网首页iOS、swift技术交流!
重写getter和setter方法或者“懒加载”?

重写getter和setter方法或者“懒加载”?

作者: 光明程辉 | 来源:发表于2015-11-19 17:19 被阅读1040次
    封装的好处.png
    • 在开发中,尽量不要使用_name这种类型的调用,而是声明为属性,直接使用self.name这样的写法。声明为属性,我们可以重写getter方法,而且就是所谓的lazy loading--也就是“懒加载”。
    - swifts 中有个延迟存储属性 lazy .其实都是一样的。就是,第一次使用时才初始化!如果没有用到它,就不会执行那行代码,也就不会初始化!(作用:有些方法或属性、类的值它大,如果没有用到,也进行初始化一遍,等到调用的时候又初始化一遍!那么就会影响性能!)

    如下就是一个例子,"只有在使用到的时候,直接通过self.yearSources就可以直接使用了",而不需要再提供一个方法来初始化数据:

    "懒加载"-- 就是重写 getter 方法啊!(只读!)

    重写get方法.png

    善于重写setter方法(可读可写!)

    • 重写setter方法,可以给我们带来很大的便利。看下面的例子:
    重写set方法.png

    重写这个方法,就不需要额外提供一个方法来更新数据显示了。

    我们只需要调用如下:


    屏幕快照 2015-11-19 17.17.57.png

    太方便了!
    就可以了,因此这个方法已经重写了而且也自动更新数据显示了。

    补充:

    // 封装的好处;

    总结: 只要你想改变值(成员变量的值),就要调用 set 方法,(也就是监听set方法,监听属性的改变!)

    1.只要 调用 set 方法,就可以修改成员变量的值!,就是“监听”成员变量的改变。

    2、通过“监听” 或 set 方法,就可以修改成员变量的值

    3、别人 一担 调用 我的 set 方法,一定是想修改我的东西(成员值);-- 所以,这也就是为什么有时侯修改属性值或什么的,考虑重写 set 方法的原因了!

    相关文章

      网友评论

        本文标题:重写getter和setter方法或者“懒加载”?

        本文链接:https://www.haomeiwen.com/subject/hkelhttx.html