iOS 属性修饰符之NSString--copy--strong
来源:互联网 发布:雅典娜潮州网络女神 编辑:程序博客网 时间:2024/05/20 20:05
这几天项目中出现多处崩溃的问题,究其原因居然是属性修饰符使用不当造成,以前不是很明白他们的用法和带来的后果,只知道闷头使用,今天特意总结列出,以供学习
本篇参考http://blog.csdn.net/qq_18425655/article/details/51373611 感谢
代码:
@interface Test : NSObject @property (nonatomic, strong) NSString *str1; @property (nonatomic, copy) NSString *str2; @end #import <Foundation/Foundation.h> #import "Test.h" int main(int argc, const charchar * argv[]) { @autoreleasepool { NSMutableString *str = [NSMutableString stringWithString:@"hello"]; Test *test = [[Test alloc] init]; test.str1 = str; test.str2 = str; [str appendString:@" world"]; NSLog(@"str1:%@ str2:%@", test.str1, test.str2); // str1:hello world str2:hello } return 0; }
str1使用 strong 修饰的,str2 使用copy修饰的,现在让他们两个都等于一个可变字符串str。
修改str,输出结果发现,str1 也跟着str变了,而 str2 没有变。
把可变的 str 赋给 strong 修饰的、不可变的 str1,没有产生新对象,二者指向同一个地址,所以 str 的改变会影响 str1。
把可变的 str 赋给 copy 修饰的、不可变的 str2,产生了新对象,二者指向不同的地址,所以 str 的改变不会影响 str2阅读全文
0 0
- iOS 属性修饰符之NSString--copy--strong
- iOS 属性修饰符strong还是copy?
- iOS 属性修饰符Copy 还是Strong
- iOS-修饰NSString的strong和copy
- iOS学习——NSString属性的strong和copy
- NSString类型的属性一般用copy修饰,而不是用strong来修饰。
- 关于strong retain copy 修饰nsstring
- iOS开发-------属性用copy、strong修饰的区别
- iOS开发 -- 属性用copy、strong修饰的区别
- iOS开发-------属性用copy、strong修饰的区别
- iOS 开发 NSString(NSDictory,NSArray)为什么用copy修饰,而不是用strong修饰
- Objective-C属性修饰符strong和copy的区别
- Objective-C属性修饰符strong和copy的区别
- Objective-C属性修饰符strong和copy的区别
- Objective-C属性修饰符strong和copy的区别
- 数组的属性修饰符到底用strong还是copy?
- iOS中NSString 使用 copy 和 strong 修饰的区别详解
- NSString属性使用copy还是strong
- linux 块设备驱动 (三)块设备驱动开发
- Axios使用手册
- 递归问题——以全排列、青蛙过河问题为例
- numpy基础——关于 ndarray 的一些尝试
- webservice与spring整合
- iOS 属性修饰符之NSString--copy--strong
- js判断访问浏览器是安卓还是ios还是微信浏览器还是微博
- zephyr 资源下载
- 符号三角形问题
- JSONP原理
- 大数据可视化应用领域探析
- C++源码之目录遍历
- 关于3年买车5年买房的那些事
- Fragment获取Activity值的时候拿不到