@porperty是一个编译器指令
在Xocde4.4之前, 使用@porperty来代替getter/setter方法的声明 编译器只要看到@property,就知道我们要生成某一个属性的getter/setter方法的声明
从Xcode4.4以后,只要利用一个@property就可以生成setter/getter方法的声明和实现
利用@property来生成getter/setter方法, 可以不写成员变量, 系统会自动生成一个_开头的成员变量
注意: @property自动帮我们生成的成员变量是一个私有的成员变量, 是在.m文件中生成的, 不是在.h文件中生成的
property修饰符
- readwrite: 代表同时生成getter方法和setter方法
- 默认情况下 @property就是readwrite的
@property(readwrite) int age;
- readonly: 代表只生成getter方法
@property(readonly) NSString * name;
程序员之间的约定, 获取BOOL类型的属性的值, 将获取的方法名称改为isXXX
@property(getter=isMarried) BOOL married;
@synthesize是一个编译器指令
简化我们getter/setter方法的实现
告诉@synthesize, 需要将传入的值赋值给谁和返回谁的值给调用者