码迷,mamicode.com
首页 > 编程语言 > 详细

Swift的setter与getter

时间:2015-11-11 15:11:39      阅读:450      评论:0      收藏:0      [点我收藏+]

标签:

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

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

技术分享

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

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

技术分享

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

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

技术分享

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

技术分享

打印:

技术分享

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

Swift的setter与getter

标签:

原文地址:http://my.oschina.net/u/2341734/blog/528855

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!