美文网首页
swift随笔 属性

swift随笔 属性

作者: Rokkia | 来源:发表于2017-09-08 17:58 被阅读17次
1.存储型属性

这种属性就是最简单的一种属性

class PropertyProtocol{
    var name:String = "haha"
}

用法也很简单

let property = PropertyProtocol()
property.name = "1ran"
print("property is \(property.name)")
2.计算性属性 setter & getter

这种属性是对某个属性执行set | get操作前,先进行操作,然后在返回 | 存储数据
这里有个很让人不爽的地方 。

var age:Int{
        #想要在给age赋值的时候 增加5
        set{       
        }
        #返回age的时候直接返回
        get{            
        }
    }

这里有个很疑惑的问题,set中如果直接使用age = newValue + 5,这时候编译器会提示,按照提示的结果是

set{
  self.age = newValue + 5
}

但是当你编译的时候,很开心,报错了,get中同理。
于是,查了一下资料,上面说,要定义另外一个变量来接收他,于是变成了这样

private var _age: Int = 0
var age:Int{
        #想要在给age赋值的时候 增加5
        set{ 
             _age = newValue + 5      
        }
        #返回age的时候直接返回
        get{     
            return _age     
        }
    }
3.类型属性

看很多资料说在属性前面class 就OK了,亲测并不行,后来才发现3.0后改成了 static

static var Level:Int = 0

用起来也很干爽

PropertyProtocol.Level = 20
print("class property is\(PropertyProtocol.Level)")
4.属性监视器

这个跟set get很像,不一样的是,这个可以监听到赋值的时机。

var observer_value:Int = 0{
        #这里会自带newValue
        willSet{
            print("will Set newValue :\(newValue) now value: \(observer_value)")
        }
        #这里会自带一个oldValue
        didSet{
            print("this is old value\(oldValue) this is new value \(observer_value)")
        }
    }

看一下使用过程

property.observer_value = 20
提一句,set | get 与willSet | didSet不能共存哦
5.懒加载

这个地方是最有意思的,其实懒加载是执行了的一个闭包操作

lazy var lazy_test:String = { ()->(String) in
        return "__鲸_"
    }()

看着很奇怪吧 ,我们来拆分一下

{ ()->(String) in
        return "__鲸_"
    }

不难发现这是一个闭包,闭包执行就是加个(),就这么简单。

相关文章

  • swift随笔 属性

    1.存储型属性 这种属性就是最简单的一种属性 用法也很简单 2.计算性属性 setter & getter 这种属...

  • Swift笔记(一)属性、析构、调用OC单例

    目录 swift属性存储属性懒加载属性计算属性属性监听类型属性 swift析构函数 swift调用OC单例类方法 ...

  • Swift 属性

    Swift 属性 在Swift中属性主要分为存储属性、计算属性、延迟存储属性、类型属性这四种,并且Swift还提供...

  • Swift进阶(三)--- 属性

    Swift的属性 在swift中,属性主要分为以下几种: 存储属性 计算属性 延迟存储属性 类型属性 一:存储属性...

  • 浅谈 Swift 中的属性(Property)

    Properties in Swift 前言 Swift 中的属性分为存储属性与计算属性,存储属性即为我们平时常用...

  • Swift:基础(二十)属性

    Swift 属性 Swift 属性将值跟特定的类、结构或枚举关联。 属性可分为存储属性和计算属性: 存储属性和计算...

  • SwiftProperty Swift3.0 属性

    Swift Peoperty Swift中有下列几种属性存储属性(Stored properties):存储实例的...

  • OC的@property与Swift的存储属性/计算属性类比

    Swift中的计算属性/存储属性与OC中的@property   Swift中引入了存储属性、计算属性的概念,存储...

  • Swift 学习笔记(三)

    Swift属性 Swift属性将值跟特定的类,结构体,枚举关联。分为存储属性和计算属性,通常用于特定类型的实例。属...

  • Swift学习-进阶02

    swift对象本质,一个swift的对象默认占用16字节大小,在内存中的结构: swift类结构: 属性 存储属性...

网友评论

      本文标题:swift随笔 属性

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