博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
object c的浅拷贝(地址拷贝)和深拷贝(对象拷贝)
阅读量:4008 次
发布时间:2019-05-24

本文共 1262 字,大约阅读时间需要 4 分钟。

////  main.m//  DeepCopyDemo////  Created by 千雅爸爸 on 16/10/6.//  Copyright © 2016年 kodulf. All rights reserved.//#import 
int main(int argc, const char * argv[]) { @autoreleasepool { //浅拷贝是地址拷贝, //深拷贝是对象拷贝,是一个新的对象,新的地址 //copy(可以是浅拷贝,也可以是深拷贝) mutablecopy(一定是深拷贝) //注意copy方法,如果用来拷贝可变的对象,那么就是浅拷贝,如果copy的是可变的对象,那么就是深拷贝。要记住一点copy 饭回来的对象一定是不可变的 //mutablecopy,可变拷贝,无论我们使用mutablecopy 这个方法去操作的对象是可变的还是不可变的,最后都会进行深拷贝,而且拷贝出来的空间一定是可变的。 NSString *string = @"string";//不可变的字符串 NSLog(@"%p",string); //当copy 拷贝是是一个不可变的字符串的时候,是浅拷贝 NSString *string2 =[string copy]; NSLog(@"%p",string2); //当copy 拷贝是一个可变的字符串的时候,是深拷贝 NSMutableString *mstring = [[NSMutableString alloc] initWithFormat:@"hello"]; NSString *string3= [mstring copy]; NSLog(@"%p",mstring); NSLog(@"%p",string3); //mutablecopy,可变拷贝,无论我们使用mutablecopy 这个方法去操作的对象是可变的还是不可变的,最后都会进行深拷贝,而且拷贝出来的空间一定是可变的。 NSMutableString *string4 = [string mutableCopy]; NSLog(@"%p",string); NSLog(@"%p",string4); NSMutableString *string5 = [mstring mutableCopy]; NSLog(@"%p",string); NSLog(@"%p",string5); } return 0;}
 
 

你可能感兴趣的文章
python jieba分词模块的基本用法
查看>>
[CCF BY C++]2017.12 最小差值
查看>>
[CCF BY C++]2017-12 游戏
查看>>
如何打开ipynb文件
查看>>
[Leetcode BY python ]190. Reverse Bits
查看>>
面试---刷牛客算法题
查看>>
Android下调用收发短信邮件等(转载)
查看>>
Android中电池信息(Battery information)的取得
查看>>
SVN客户端命令详解
查看>>
Android/Linux 内存监视
查看>>
Linux系统信息查看
查看>>
用find命令查找最近修改过的文件
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
在android上运行native可执行程序
查看>>
Phone双模修改涉及文件列表
查看>>
android UI小知识点
查看>>
Android之TelephonyManager类的方法详解
查看>>
android raw读取超过1M文件的方法
查看>>
ubuntu下SVN服务器安装配置
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>