Swift的setter与getter
2015-11-11 13:08
239 查看
最近在公司闲来无事,就在网上找各种项目来学着做,基本都是OC的,然后自己差不多翻译成Swift。可是写着写着的时候发现自己Swift那个蛋疼啊,越来越感觉自己不懂Swift,所以写下一些本菜鸟碰到的一些问题与大家分享。
setter与getter算是比较蛋疼的问题了,因为之前习惯的OC的思维,所以老想着用OC的习惯去写setter和getter,于是就碰到了下面一些比较低级的错误了。
本菜鸟一开始以为是内存错误了于是开始一顿乱找,纠结半天之后发现原来是递归了,在前一句加上打印语句,
接着运行发现调试时打印如下
顿时脑海里想各种解决方法,无果(get这样也是同样的错误)。完全和OC的不一样的,不能用OC的习惯去写Swift。
然后在官方文档里看到有计算属性与存储属性这两个概念,顾名思义,计算属性不是用来存储变量或者常量的。结合网络上的各种方法,后得出一套解决方案。
定义两个变量。第一个用来做计算属性,并不存放具体的值,第二个才是存储属性。在计算属性中的setter里给存储属性赋值,getter里返回存储属性的值,运行结果如下
打印:
当然,真正应用中不会像这段示例代码那么简单,setter 与getter中肯定会做更多处理,这里只是给大家展示一下效果。如有说的不对的地方,跪求大神指教,希望对大家有所帮助!
setter与getter算是比较蛋疼的问题了,因为之前习惯的OC的思维,所以老想着用OC的习惯去写setter和getter,于是就碰到了下面一些比较低级的错误了。
本菜鸟一开始以为是内存错误了于是开始一顿乱找,纠结半天之后发现原来是递归了,在前一句加上打印语句,
接着运行发现调试时打印如下
顿时脑海里想各种解决方法,无果(get这样也是同样的错误)。完全和OC的不一样的,不能用OC的习惯去写Swift。
然后在官方文档里看到有计算属性与存储属性这两个概念,顾名思义,计算属性不是用来存储变量或者常量的。结合网络上的各种方法,后得出一套解决方案。
定义两个变量。第一个用来做计算属性,并不存放具体的值,第二个才是存储属性。在计算属性中的setter里给存储属性赋值,getter里返回存储属性的值,运行结果如下
打印:
当然,真正应用中不会像这段示例代码那么简单,setter 与getter中肯定会做更多处理,这里只是给大家展示一下效果。如有说的不对的地方,跪求大神指教,希望对大家有所帮助!
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Apple Swift学习教程
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- 简单分析Swift语言的一些基本特征