关于声明一个NSString,基于ARC下,属性修饰符一般会选择copy或strong,两者的区别在于源字符串的类型:
不可变源字符串:copy为浅拷贝,copy与strong会增加源字符串的引用计数 +1,属于增加两个指针指向源字符串的地址;改变源字符串时两者会随之改变。
可变源字符串:copy为深拷贝,copy会拷贝出一份新的地址,copy出来的是不可变的string,而strong 还是会增加一个指针。当改变源字符串时,strong修饰的会随之改变,但是copy不会。
关于声明一个NSString,基于ARC下,属性修饰符一般会选择copy或strong,两者的区别在于源字符串的类型:
不可变源字符串:copy为浅拷贝,copy与strong会增加源字符串的引用计数 +1,属于增加两个指针指向源字符串的地址;改变源字符串时两者会随之改变。
可变源字符串:copy为深拷贝,copy会拷贝出一份新的地址,copy出来的是不可变的string,而strong 还是会增加一个指针。当改变源字符串时,strong修饰的会随之改变,但是copy不会。
本文标题:声明NSString,对比属性 copy,strong
本文链接:https://www.haomeiwen.com/subject/hhgbvxtx.html
网友评论