• copy mutableCopy


            /// https://blog.csdn.net/qq_18425655/article/details/51325921
            /// 深拷贝和浅拷贝的区别。
            /// 浅拷贝复制容器。
            /// 深拷贝复制容器和容器内的元素。
            /// 所有系统类的copy和mutableCopy都是浅拷贝。
            /// 拷贝是相对于容器而言的,字符串不是容器,故不存在深浅拷贝.
            /// 故copy, 和 mutableCopy, 是相对于生成的新对象是否可变。
            /// 通过下面输出结果可以看出 arr数组中的元素也随之改变。故容器内元素没有被拷贝。也是浅拷贝。
            NSMutableArray *ar = [NSMutableArray arrayWithObjects:@1, nil];
            NSMutableArray *arr = [NSMutableArray arrayWithObjects:ar, nil];
            NSMutableArray *arr2 = [arr mutableCopy];
            [arr2[0] addObject:@2];
            NSLog(@"%@", arr[0]);

    输出结果

            NSMutableString *a = [[NSMutableString alloc] initWithString:@"111"];
            NSMutableString *b = a;
            /// 生成的是不可变字符串。
            NSMutableString *c = [a copy];
            [a appendString:@"222"];
            NSLog(@"%p %p %p", a, b, c);
            NSLog(@"%@ %@ %@", a, b, c);

    输出结果

    继承层次的关系。

    http://www.cocoachina.com/ios/20171010/20716.html

  • 相关阅读:
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    期末总结
    第一次作业
    C语言I博客作业08
  • 原文地址:https://www.cnblogs.com/jisa/p/9167086.html
Copyright © 2020-2023  润新知