美文网首页
Copy和MutalbleCopy

Copy和MutalbleCopy

作者: 哔哩哔哩智能喵 | 来源:发表于2016-08-24 11:12 被阅读15次
      NSString *srcStr = @"lxc";
        /*
         只要通过拷贝出来的对象,拷贝出来的对象中内容和以前对象中的内容一致
         "一般"情况下拷贝回生成一个新的对象
         为什么会产生一个新的对象:
         1.修改源对象不能影响到副本对象
           修改副本对象不能影响到源对象
         */
        NSMutableString * copyStr = [srcStr mutableCopy];
        NSLog(@"srcStr = %p copyStr = %p",srcStr,copyStr);
        NSLog(@"srcStr = %@ copyStr = %@",srcStr,copyStr);
         如果通过不可变对象调用了copy方法,那么不会生成一个新的对象
         原因:源对象是不能修改的,拷贝出来的对象也是不能修改的
         既然两个都不能修改,所以永远不能影响到另外一个对象
   
        NSString *srcStr = @"lxc";
        NSString *copyStr = [srcStr copy];
        NSLog(@"srcStr = %p copyStr = %p",srcStr,copyStr);
        NSLog(@"srcStr = %@ copyStr = %@",srcStr,copyStr);    
     正是因为调用copy方法有时候会生成一个新的对象,有时候不会生成一个新的对象
      所以:如果没有生成新的对象,我们称之为浅拷贝,本质是指针拷贝
      如果生成了新的对象,我们称之为深拷贝,本质是生成一个新的对象

相关文章

  • Copy和MutalbleCopy

  • copy和mutable copy

    最近上班没事,就学会习,继续记录下最近学到的东西,与君共勉,大神勿喷。首先我们测试一下这两行代码: 测试一:源对象...

  • day 9

    浅拷贝和深拷贝 copy.copy(对象):浅拷贝 copy.deepcopy(对象):深拷贝 copy.copy...

  • copy.copy和deep.copy

  • Python中的浅拷贝和深拷贝

    浅拷贝 赋值 和 copy.copy() Python中的浅拷贝分为直接赋值和使用copy模块的copy方法来进行...

  • 小试牛刀

    牛刀小试 浅copy 和深度copy的区别 copy/mutab...

  • 深copy和浅copy

    在iOS中并不是所有的对象都支持copy,mutableCopy,遵守NSCopying 协议的类可以发送copy...

  • 深copy和浅copy

    对于基本数据类型和基本对象类型的数据,深拷贝都是重新开辟一个内存空间去存储数据,浅拷贝都是拷贝了对象的内存地址 关...

  • copy和mutable-copy

    首先我们测试一下这两行代码: 测试一:源对象为可变字符串 测试二:源对象为不可变字符串 总结:字符串的拷贝,只要拷...

  • Python copy

    浅拷贝copy.copy() 深拷贝copy.deepcopy() List Slicing [:]和List转换...

网友评论

      本文标题:Copy和MutalbleCopy

      本文链接:https://www.haomeiwen.com/subject/dmansttx.html