数据结构和算法总结

数据结构和算法总结_第1张图片
383191-20151011160804581-948960749.png
30901550543027_.pic_hd.jpg

数据结构和算法总结_第2张图片
201550633088_.pic_hd.jpg

当我们十分确定,要给属性NSString赋一个不可变的值时,用strong。如果使用copy来修饰属性,在进行赋值的时候,会先做一个类型判断,如果赋的值是一个不可变的字符串,则走strong的策略,进行的是浅拷贝;如果是可变的字符串,则进行深拷贝创建一个新的对象。所以如果我们确定是给属性赋值一个不可变的值,就不用copy再多去判断一遍类型,因为如果是很多的NSString属性需要赋值,会极大的增加系统开销。所以用strong在此情况下可以提升性能。
但是很多情况下我们并不能确定要赋的值是什么类型的,所以我们还是使用copy来修饰,这样保证了安全性。因为如果赋值的可变的字符串,当它发生变化时,用strong修饰的属性的值也会跟着变化;而copy修饰的属性,则因为是深拷贝而不会变化。

作者:li125434104
链接:https://www.jianshu.com/p/ddfd5cc0c1b4
來源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(数据结构和算法总结)