美文网首页
@property声明的 NSArray、NSDictionar

@property声明的 NSArray、NSDictionar

作者: 萤火驻守心间 | 来源:发表于2022-04-21 17:36 被阅读0次

分析: NSString、NSArray、NSDictionary 含有对应的可变类型:NSMutableString、NSMutableArray、NSMutableDictionary,他们之间可能进行赋值操作(就是把可变的赋值给不可变的),为确保对象中的字符串值不会无意间变动,应该在设置新属性值时拷贝一份。

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

注意:copy 一般用来修饰有对应可变类型的不可变对象上,NSMutableString、NSMutableArray和NSMutableDictionary等尽量不要直接copy修饰,否则修改时会出现崩溃。
原因:因为用copy修饰得到的是不可变类型对象

相关文章

网友评论

      本文标题:@property声明的 NSArray、NSDictionar

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