iOS开发怎么使用copy关键字

2018-05-28  本文已影响11人  Faith____搬运工

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

上一篇 下一篇

猜你喜欢

热点阅读