@private: 类内部使用
@protected:类内部或子类中使用
@public:任何地方都可以使用
setter方法根据所更改的变量名来命名
eg: age == setAge
getter方法根据所取的值得的变量名称来命名
属性自动生成getter和setter的方法
@property:
@synthesize:
如果.h文件中定义了实例变量,.m文件中使 用@synthesize,并且属性和实例变量名称相同,@synthesize会将属性生成的getter和setter与实例变量合成
•如果.h文件中省略了实例变量,.m文件中使用@synthesize,会自动生成同属性名的实例变量,将getter和setter与生成后的变量合成
.m 文件中可以使用@synthesize指定属性生成什么样的实例变量名称
–@synthesize 属性名= 生成的实例变量名;
readwrite: 可读写,默认
readonly: 只读的,系统只会产生getter方法,而不会产生setter方法,不能通过 点语法 赋值
strong: 强引用,拥有目标对象的所有权
weak :弱引用,不拥有,当目标对象被销毁之后,属性值会被自动设为nil
copy: 复制对象,之前的对象会接收到释放的消息
assign ;默认
retain ;持有目标的对象,之前的对象会接收到释放的消息
nonatomic ;非原子,加快属性值的存取速度,
atomic: 原子操作,默认, 多线程环境
@protected:类内部或子类中使用
@public:任何地方都可以使用
setter方法根据所更改的变量名来命名
eg: age == setAge
getter方法根据所取的值得的变量名称来命名
属性自动生成getter和setter的方法
@property:
@synthesize:
如果.h文件中定义了实例变量,.m文件中使 用@synthesize,并且属性和实例变量名称相同,@synthesize会将属性生成的getter和setter与实例变量合成
•如果.h文件中省略了实例变量,.m文件中使用@synthesize,会自动生成同属性名的实例变量,将getter和setter与生成后的变量合成
.m 文件中可以使用@synthesize指定属性生成什么样的实例变量名称
–@synthesize 属性名= 生成的实例变量名;
readwrite: 可读写,默认
readonly: 只读的,系统只会产生getter方法,而不会产生setter方法,不能通过 点语法 赋值
strong: 强引用,拥有目标对象的所有权
weak :弱引用,不拥有,当目标对象被销毁之后,属性值会被自动设为nil
copy: 复制对象,之前的对象会接收到释放的消息
assign ;默认
retain ;持有目标的对象,之前的对象会接收到释放的消息
nonatomic ;非原子,加快属性值的存取速度,
atomic: 原子操作,默认, 多线程环境