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

  • 相关阅读:
    hadoop集群配置和测试
    ubuntu 12.04安装jdk
    springboot集成mybatis
    redis连接数据库
    生产随机数
    关于字符串统计次数
    闲的无聊写了一个房租的后台
    简单的死锁
    java集合类总结(转)
    mybatis框架的搭建
  • 原文地址:https://www.cnblogs.com/lelun/p/5632668.html
Copyright © 2011-2022 走看看