码迷,mamicode.com
首页 > 其他好文 > 详细

copy和assign的使用和区别

时间:2016-07-01 13:16:12      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

1、使用copy和assign都可以进行修饰属性或者变量。

2、区别:

     (1)copy的使用:使用这个进行修饰的属性,当已经进行初始化之后,就无法再改变属性的数据。

       如:

@property (copy , nonatomic) NSString *firstName;//是Person类的一个属性

在main文件中:

         Person *person = [[Person alloc] init];

        NSMutableString string = @"steven";

         person.firstName = string;

       nslog(@"%@",person.firstName);  //1

     string = @"another name";

    nslog(@"%@",person.firstName);    //2

   2和1显示的字符串是相同的。。

 

但是如果是这样修饰属性@property (assign , nonatomic) NSString *firstName;//是Person类的一个属性

   2和1显示的字符串是不相同的,1显示的是steven , 2显示的是another name。

 

注意:如果你真想直接修改copy修饰的属性,你可以这样

- (id)initWithSomeOriginalString:(NSString *)aString {
    self = [super init];
    if (self) {
        _instanceVariableForCopyProperty = [aString copy];
    }
    return self;
}

 

copy和assign的使用和区别

标签:

原文地址:http://www.cnblogs.com/lelun/p/5632668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!