Swift 中 set 和 get 方法

作者: 小王在努力 | 来源:发表于2020-05-20 14:30 被阅读0次

    前言

    Swift的set、get方法不像ObjC那样简单明了,下面我们就来细细分析下。

    步骤

    • 1、只重写get方法,不写set方法,默认为readOnly
        public var  number: Int{
            get{
                 return 1;
            }
        }
    
    • 2、Swift 中我们 不能使用 _c 来表示 OC 中@property 修饰的变量值
        var number : Int{
            get{
                //1、不能写成number或者self.number都会造成crash,原因不用多说大家都懂的,死循环
                //2、不能像ObjC那样写成return _number
                //3、不能写成return number 或者return self.number
                return 1;
            }set{
                //写上 self.number = newValue 和 不写都会造成crash
                //而且 不能像ObjC中写上 ObjC
                //number = newValue造成crash  原因是方法的死循环
                let a = newValue;
                print(a);
            }
        }
    
    • 3、由于2提到的原因重写的时候,我们使用额外的一个变量来重写
        var _number :Int = 0
        var number : Int{
            get{
                return _number;
            }set{
                _number = newValue;
            }
        }
    

    是不是和ObjC比较相似

    • 4、Swift中使用了willset 和 didSet这2个特性,来见识属性的除初始化之外的属性值变化
        var number : Int = 0{
            didSet{
                //UI 操作
            }
            willSet{
                
            }
        }
    
    • 5、懒加载写法
        lazy var titleLab : UILabel = {
            return UILabel.init();
        }()
    

    相关文章

      网友评论

        本文标题:Swift 中 set 和 get 方法

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