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

  • 相关阅读:
    CLR Via
    HTML&XML
    SNS研究
    DotNet&C#
    电子商务
    WCF学习
    SQL
    构架设计
    JS&Ajax
    NHibernate之旅系列文章导航
  • 原文地址:https://www.cnblogs.com/lelun/p/5632668.html
Copyright © 2011-2022 走看看