关于声明一个NSString,基于ARC下,属性修饰符一般会选择copy或strong,两者的区别在于源字符串的类型:
不可变源字符串:copy为浅拷贝,copy与strong会增加源字符串的引用计数 +1,属于增加两个指针指向源字符串的地址;改变源字符串时两者会随之改变。
可变源字符串:copy为深拷贝,copy会拷贝出一份新的地址,copy出来的是不可变的string,而strong 还是会增加一个指针。当改变源字符串时,strong修饰的会随之改变,但是copy不会。
声明NSString,对比属性 copy,strong
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- NSString 和 NSArray 在@property的时候,到底是用strong还是用copy修饰,这里依据...
- 为什么很多内置类如UITableView的delegate属性都是assign而不是retain? 所有的引用计数...
- 我们先来看看下面的这些顶尖高手是如何死在股市上的: 1、格雷厄姆1929年股市泡沫破灭后在1931年抄底,结果破产...