Objective-C中的@property使用[五]
简介
Objective-C语言关键词,与@synthesize配对使用。
功能:让编译器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。
如:
1、在头文件中:
- @property int variable;
等效于在头文件中声明2个方法:
- - (int)variable;
- -(void)setVariablet:(int)newVariable;
2、实现文件(.m)中
- @synthesize variable;
等效于在实现文件(.m)中实现2个方法。
- - (int)Variable
- {
- return variable;
- }
- -(void)setVariable:(int)newVariable
- {
- variable = newVariable;
- }
以上等效的函数部分由编译器自动帮开发者填充完成,简化了编码输入工作量。
编辑本段
格式
声明property的语法为:
@property (参数1,参数2) 类型 名字;
如:
@property(nonatomic,retain) Variable *variable;
其中参数主要分为三类:
读写属性: (readwrite/readonly)
setter语意:(assign/retain/copy)
原子性: (atomicity/nonatomic)
各参数意义如下:
readwrite
产生setter\getter方法
readonly
只产生简单的getter,没有setter。
assign
默认类型,setter方法直接赋值,而不进行retain操作
retain
setter方法对参数进行release旧值,再retain新值。
copy
setter方法进行Copy操作,与retain一样
nonatomic
禁止多线程,变量保护,提高性能