zoukankan      html  css  js  c++  java
  • copy和assign的使用和区别

    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;
    }

  • 相关阅读:
    CSS3中background-origin和background-clip的区别
    JavaScript的赋值是引用or复制,及参数传递
    写第一个jquery插件实录
    北大acm1008
    北大acm1007
    北大acm1006
    北大acm1005
    北大acm1004
    团队绩效评估
    第二阶段冲刺第十天
  • 原文地址:https://www.cnblogs.com/lelun/p/5632668.html
Copyright © 2011-2022 走看看