property 的出现是为了解决 不用再 每个属性写一遍 setter getter 方法 会自动生成
synthesuze 主要有两种写法
@synthesize student @sythesize student = _ student
这个方法 会生成一个带下划线的实例变量名 同时使用这个属性生成 getter 和setter
@sythesize 就一个目的 给实例变量 起一个别名
其实第一种写法 等价于 @sythesize student = studenth
使用变量 进行操作 属性本身的引用计数不会增加 因为没有经过调用 setter 或者getter 方法 但是 如果使用self.student 这样的实际上 是通过 了setter 或者 getter 方法
另外 sythesize 会自动生成 setter 和 getter 方法
1.@synthesize 的作用:是为属性添加一个实例变量名,或者说别名。同时会为该属性生成 setter/getter 方法。
2.禁止@synthesize:如果某属性已经在某处实现了自己的 setter/getter ,可以使用 @dynamic 来阻止 @synthesize 自动生成新的 setter/getter 覆盖。
3.内存管理:@synthesize 和 ARC 无关。
4.使用:一般情况下无需对属性添加 @synthesize ,但一些特殊情形仍然需要,例如protocol中声明的属性。
网友评论