美文网首页swift
十九、Swift3.0之getter和setter 、计算型和只

十九、Swift3.0之getter和setter 、计算型和只

作者: ZhengYaWei | 来源:发表于2017-03-01 21:01 被阅读1307次

    说明:Swift实际开发中一般不会重写setter和getter方法,这里仅供参考和了解。

    class Person: NSObject {
        //getter和setter  
        //仅供延时,日常开发不用
        var _name: String?
        var name: String?{
            get{
                //返回成员变量
                return _name
            }
            set{
                //设置成员变量
                _name = newValue
            }
        }
         
    
        //只读属性的一般写法
        var title: String{
            //只重写了get方法,没重写set方法,所以外界不能赋值,只能是只读属性
            get{
                return "Mr" + (name ?? "")
            }
        }
        
        //只读属性的简写 
        //又称为计算型属性,本身不保存内容,每一次都是通过计算获取结果。
        //类似于一个函数:没有参数,但一定有返回值
        var title2: String{
            return "Mr" + (name ?? "")
        }
    }
    
    

    这里顺便说一下懒加载和计算型属性的区别:
    计算型属性:

    • 不分配独立的空间保存计算结果
    • 每次通过 self.属性名 都会执行
    • 像是一个函数,不过这个函数不能接受参数,但是有返回值

    懒加载:
    -在第一次调用时,执行闭包并且分配空间存储闭包返回的竖直

    • 会分配独立的存储空间
    • 和OC不同的是,lazy修饰的属性即使被置为nil也不会再次调用

    相关文章

      网友评论

      • Lol刀妹:你好,想请教一下“Swift实际开发中一般不会重写setter和getter方法”的原因😀
        ZhengYaWei:@无夜之星辰 计算型属性和存储属性的区别你仔细看下。一般使用存储属性,利用属性观察器

      本文标题:十九、Swift3.0之getter和setter 、计算型和只

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