微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift属性

概述

Swift中跟实例相关的属性可以分为2大类

存储属性(Store Property)

  • 类似成员变量的概念
  • 存储在实例的内存中
  • 结构体、类可以定义存储属性 枚举不可以定义存储属性

计算属性(Computed Property)

  • 本质就是方法(函数)
  • 不占用实例的内存
  • 枚举、结构体、类可以定义计算属性

分享图片

存储属性 

关于存储属性,Swift有明确规定

在创建类 或 结构体的示例时,必须为所有的存储属性设置一个合适的初始值

计算属性

set传入的新值认叫做newValue,也可以自定义 

分享图片

只读计算属性:只有get,没有set

定义计算属性只能用var,不能使用let 因为let代表常量:值是一成不变的

延迟存储属性

使用lazy可以定义一个延迟存储属性,在第一次用到属性的时候才会进行初始化

分享图片

lazy属性必须是var,不能是let 因为let必须在示例的初始化方法完成之前拥有值

如果多条线程同时第一次方位lazy属性 无法保证属性只被初始化一次

延迟存储属性注意点

当结构体包含一个延迟属性时,只有var才能访问延迟存储属性

因为延迟存储属性初始化时需要改变结构体的内存

分享图片

属性观察器

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐