NSString使用copy和strong修饰
主要区别在于为了防止NSString被修改。
当NSString的赋值来源也是NSString时,strong和copy的作用相同,都是给复制来源的引用计数加1;
当NSStrig的赋值来源是NSMutableString时,copy会做深拷贝,即重新生成一个新的对象,修改赋值来源不会影响NSString的值。
- 必须使用copy的场景:A对象持有string记做A.string,然后赋值给B对象,记做B.string,若希望B.string的内容改变时A.string不改变就必须用copy
- 必须用strong的场景:若希望B.string的内容改变时同时A.string也改变则必须用strong
- 随便用哪个的场景:string的内容不会被改变的情况下
以上规则不止适用于NSString,NSArray,NSDictionary等同理
posted on 2021-08-10 10:51 JieFangZhe 阅读(288) 评论(0) 收藏 举报
浙公网安备 33010602011771号