黑马程序员技术交流社区

标题: @property的使用.以及如何生成一个真正的私有属性 [打印本页]

作者: Gyj900730@    时间: 2016-8-27 00:30
标题: @property的使用.以及如何生成一个真正的私有属性
@property   1.是使用在@interface 里面的,当用@property 申明一个属性的时候会做三件事情,一是生成一个私有的属性,这个属性可以在方法的内部访问,但不可以被方法的外部直接访问,可以通过点语法\或者setter  getter 方法来访问    二是生成getter  和setter 方法的申明   三 是生成getter和setter方法的实现,..生成这个属性不是真正的私有属性,它可以被外界间接访问.如果想要只生成真正的私有属性,可以用延展这种方法,将这个属性申明到 这种特殊的分类(延展)里,再将这个属性的getter 和setter方法的实现写在@implementation里面.这样就生成了一个真正私有的属性.因为@property不可以写在@implementation里面,而延展又只是申明,可以申明任何成员的属性方法,实现则正好在@implementation中,躲过了在@interface中的申明,所以这种方法可以申明一个真正的私有属性.

@property 是将普通的 定义属性与封装getter 和setter的操作集成在一起的一个语法.它的局限性就是不可以用@property来生成一个真正的私有属性.只能通过上面那种方法,或者是用原始的方法(单独申明一个属性,只将属性的getter 和setter方法的实现写在@inplementation中.

作者: 杨光0618    时间: 2016-8-27 12:15
不错不错,学习学习
作者: 1358840521    时间: 2016-8-27 18:14
很详细,感谢楼主分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2