记录一个典型的 NSString 声明为 copy 和 strong 问题

  • string 拷贝问题
    • 1:copy 类型,不会随着被拷贝对象的变化而变化
    • 2:strong 类型,如下面代码,‘self.myTitle = mutableTitle;’代码执行后 self.myTitle 指针指向了 mutableTitle 所指的内存地址,且不会随着mutableTitle 指向其他内存地址而改变,它值的改变只会随着指向的内存地址中的值改变而改变
    self.myTitle = @"title";
    NSMutableString *mutableTitle = [NSMutableString stringWithFormat:@"mutableTitle"];
    self.myTitle = mutableTitle;
    [mutableTitle insertString:@"change" atIndex:0];
    mutableTitle = @"changedMTitle".mutableCopy;
    NSLog(@"title=%@", self.myTitle);
    // strong: 输出 "changemutableTitle"
    // copy: 输出 "mutableTitle"
结论:string 一定要声明为copy类型
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,911评论 1 32
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,078评论 8 265
  • 面试题参考1 : 面试题[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios阅读 5,697评论 0 4
  • 我的第一次爱情宣言.也不知道为什么自己会一直辗转难念,思绪万千,经过了这么多年总是念念不忘,真是情到深处自然浓,还...
  • “喂,是立志吗?” “嗯,你是?” “我,我,好久不见” “你是梦瑶,是吗?” “嗯,我——” “好久不见呀,五年...
    闵建力阅读 2,361评论 0 0

友情链接更多精彩内容