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

  • 相关阅读:
    07组 Beta冲刺 (2/5)
    第07组 Beta冲刺 (1/5)
    第07组 Alpha冲刺 总结
    ES相关
    集群与分布式
    idea使用总结
    Tomcat配置与启动与访问
    Web基础
    B/S与C/S架构
    一周视频学习总结
  • 原文地址:https://www.cnblogs.com/lelun/p/5632668.html
Copyright © 2011-2022 走看看