美文网首页
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