zoukankan      html  css  js  c++  java
  • NSCopy  NSMutableCopy

    拷贝分为深拷贝和浅拷贝   浅拷贝:不产生新的对象,直接指向原有对象
    深拷贝:产生新的对象,其内容是原有对象的内容
     
    拷贝:NSCopy、NSMutableCopy
    NSCopy拷贝出的结果是不可变对象,跟其接受类型没有关系,跟其传入类型也没有关系,NSMutablecopy拷贝的结果是可变对象,跟其传入的类型没有关系,但是会受其接收类型的影响,
     
    当使用NSCopy复制一个不可变对象时,其行为是浅复制,其余情况都是深拷贝
    当使用NSMutablecopy时,是深拷贝
     
    #import <Foundation/Foundation.h>
     
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            /*  NSCopy
            NSString *str = [NSString stringWithFormat:@"123"];
     
            NSString *str1 = [str copy];
     
            NSMutableString *str2 = [str copy];
     
     
            NSMutableString *str3 = [NSMutableString stringWithFormat:@"222"];
            NSString *str4 = [str3 copy];
     
     
            NSLog(@"%p,%p",str1,str);
     
            */
     
            /* NSMutableCopy*/
     
             NSString *str = [NSString stringWithFormat:@"123"];
     
            NSMutableString  *s = [str mutableCopy];
     
            [s setString:@"23"];
            NSLog(@"%p,%p",s,str);
     
     
     
     
     
     
     
     
     
        }
        return 0;
    }
  • 相关阅读:
    openSUSE 13.1 Milestone 4 发布
    Neo4j 2.0 M4 发布
    iBoxDB for .NET v1.5发布, 移动NoSQL数据库
    GNU libc (Glibc) 2.18 发布
    Android 开源项目维护者宣布退出
    Jeasyframe 开源框架 稳定版 V1.5 发布
    Spring Mobile 1.1.0.RC1 和 1.0.2 发布
    Deis logo 开源PaaS系统 Deis
    EasyCriteria 3.0 发布
    TypeScript 0.9.1 发布,新增 typeof 关键字
  • 原文地址:https://www.cnblogs.com/zhangyu666666/p/4931110.html
Copyright © 2011-2022 走看看