1 property的语法格式
@property(参数1,参数2,……)类型 名称;
例如:@property (strong,nonatomic)MutableArray *addr;
2 property的参数
property后面的参数有:assign,copy,retain,readwrite,readonly,atomic,nonatomic,
weak,strong等
3 assign,retain,copy
assign
简单赋值,不更改索引计数
retain
释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
copy
建立一个索引计数为1的对象,然后释放旧对象
此参数只对那些实行了NSCopying协议的对象类型有效
(补充:索引计数的值,表示有多少变量在使用这个对象。当索引计数为0时,表明没有变量使用该对象,就会被清除。)
下面,通过代码来了解retain和copy的区别:
.h文件中的代码:
@property (retain,nonatomic) NSString *rStr;
@property (retain,nonatomic) NSString *rStr1;
@property (copy, nonatomic) NSString *cStr;
@property (copy, nonatomic) NSString *cStr1;
.m文件中的代码:
- (void)viewDidLoad {
[super viewDidLoad];
//源对象为NSString,参数为retain
NSString *rString = [[NSString alloc] initWithFormat:@"abcde"];
NSLog