Swift的setter与getter

最近在公司闲来无事,就在网上找各种项目来学着做,基本都是OC的,然后自己差不多翻译成Swift。可是写着写着的时候发现自己Swift那个蛋疼啊,越来越感觉自己不懂Swift,所以写下一些本菜鸟碰到的一些问题与大家分享。

setter与getter算是比较蛋疼的问题了,因为之前习惯的OC的思维,所以老想着用OC的习惯去写setter和getter,于是就碰到了下面一些比较低级的错误了。

130515_jvH3_2341734.png

本菜鸟一开始以为是内存错误了于是开始一顿乱找,纠结半天之后发现原来是递归了,在前一句加上打印语句,130549_IWoa_2341734.png

接着运行发现调试时打印如下

130611_tEd0_2341734.png

顿时脑海里想各种解决方法,无果(get这样也是同样的错误)。完全和OC的不一样的,不能用OC的习惯去写Swift。

然后在官方文档里看到有计算属性与存储属性这两个概念,顾名思义,计算属性不是用来存储变量或者常量的。结合网络上的各种方法,后得出一套解决方案。

130642_8Mne_2341734.png

定义两个变量。第一个用来做计算属性,并不存放具体的值,第二个才是存储属性。在计算属性中的setter里给存储属性赋值,getter里返回存储属性的值,运行结果如下

130707_DEP3_2341734.png

打印:

130727_7xif_2341734.png

当然,真正应用中不会像这段示例代码那么简单,setter 与getter中肯定会做更多处理,这里只是给大家展示一下效果。如有说的不对的地方,跪求大神指教,希望对大家有所帮助!

转载于:https://my.oschina.net/u/2341734/blog/528855

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值