Swift的setter与getter

原创
2015/11/11 13:08
阅读数 2.9K

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

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

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

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

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

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


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

打印:

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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部