在OC中,使用@property关键字,声明对象的属性。包含了受保护字段的声明、字段的getter & setter 方法声明 以及 对应方法的实现。
在对这个属性进行读写的操作过程中,OC和其他语言不太一样。它有两种写法。
[instance setProperty : value] & instance.property = value;
我个人坚决支持后一种写法,也就是.语法。
并附如下原因:
1、OC是面向对象语言。面向对象语言对于面向过程语言来说,有一个很大的不同之处:数据和行为自治。(某些特性的行为是为特性的数据服务的)
2、面向对象语言中,大多数对象的不存不单纯的只是数据(如果是,那就和C语言的结构体没有区别了),更多的是数据 + 行为 来组合成一个完整意义的对象。
3、如果使用setProperty的方式,一大片代码都是函数的调用,函数的调用。初看之下我都分不清哪些是属性,是存放数据的。哪些是行为,是处理数据的。
4、个人喜好和习惯。毕竟从.net 转过来的,属性我更倾向于使用.语法。
其中最重要的是第3点,使用点语法,我能一眼就瞟出哪些是数据,哪些是行为。可以更加快捷的辨识这个对象的结构,也可以使代码更具备可读性。