美文网首页
iOS开发怎么使用copy关键字

iOS开发怎么使用copy关键字

作者: Faith____搬运工 | 来源:发表于2018-05-28 10:47 被阅读11次

    1.iOS开发怎么使用copy关键字

    原因:因为父类指针可以指向子类对象,使用copy的目的是为了让本对象的属性不受外界影响,使用copy无论给我传入是一个可变对象还是不可对象,                我本身持有的就是一个不可变的副本.,如果我们使用是strong,那么这个属性就有可能指向一个可变对象,如果这个可变对象在外部被修改了,那                么会影响该属性.

                 //User.h文件中

    @property (nonatomic, strong)NSString *name;此时若将一个可变字符串set给name,那么此时的name则指向的是一个可变字符

                        那么就无法保证name的不可变性 

                 @property (nonatomic, copy)NSString *name;此时若将一个可变字符串set给name,此时会执行[MutableString copy]内容复        制,即深复制,将返回一个不可变字符串,即name指向的是一个不可变字符串,以后即使MutableString改变也不会影响name的值

          例如:

    NSMutableString *string = [NSMutableString stringWithString:@"origin"];//copy

    NSString *stringCopy = [string copy];

    [string appendString:@"origion!"]

    此时的打印结果:string:originorigion!,而stringCopy仍为:origin

    相关文章

      网友评论

          本文标题:iOS开发怎么使用copy关键字

          本文链接:https://www.haomeiwen.com/subject/kmtlhftx.html