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

  • 相关阅读:
    SQL进阶系列之2自连接
    SQL进阶系列之0窗口函数
    SQL进阶系列之1CASE表达式
    Python for Email
    数据分析的统计基础5
    利用Python openpyxl操作Excel
    SQL基础篇(MICK)
    数据分析的统计基础4
    数据分析的统计基础3
    数据分析的统计基础2
  • 原文地址:https://www.cnblogs.com/lelun/p/5632668.html
Copyright © 2011-2022 走看看