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)    收藏  举报

导航