以前在自学OC的时候和实际的项目中,都没有关注这一个小问题,一直使用Strong属性声明,也没发现项目中出现过由于NSString导致的未知Bug。某一天看到南峰子的blog,我也来测试以下看看具体区别。
1.首先分别定义这个两个属性 NSString。
@property (nonatomic,strong)NSString *strongStr;
@property (nonatomic,copy )NSString *copyssStr;
2.然后声明一个不可变的NSSring对象,给这两个属性对象赋值,分别输出他们的指针和内存地址。
- (void)test{
&

本文通过实例分析了在iOS中,NSString属性使用Strong和Copy的区别。当原字符串是NSString时,两者都指向同一对象,Copy是浅拷贝;而当原字符串是NSMutableString时,Strong仅增加引用计数,Copy则执行深拷贝,创建新的不可变对象。在考虑防止意外修改时,通常推荐使用Copy属性。
382

被折叠的 条评论
为什么被折叠?



