iOS软件开发 内存管理之拷贝
来源:互联网 发布:亚马逊和淘宝哪个大 编辑:程序博客网 时间:2024/04/25 22:14
1、copy与retain的区别: copy 是创造一个新的对象 而retain只是让对象的引用计数+1 copy出来的新对象 不会依赖旧的对象 retain 改变对象 示例: NSMutableString *string = [NSMutableString stringWithString:@"1111"]; // [string retain]; // [string copy]; NSLog(@"%ld",string.retainCount); retain 的时候string.retainCount为2 copy 的时候string.retainCount为1 2、什么样的类才可以拷贝 ios中并不是所有的对象都支持copy,mutableCopy,遵守NSCopying 协议的类可以发送copy消息,遵守NSMutableCopying 协议的类才可以发送mutableCopy消息。如果发送了一个没有遵守拷贝协议而发送 copy或者 mutableCopy,那么就会发生异常或者系统崩溃 常用的可复制对象有:NSNumber、NSString、NSArray、NSDictionary、 NSMutableDictionary、NSMutableArray、NSMutableString 3、自定义一个类支持拷贝协议 (1、)遵守拷贝协议 @interface Person : NSObject<NSCopying> (2、)实现拷贝协议的方法 - (id)copyWithZone:(NSZone *)zone { Person *person = [[Person allocWithZone:zone]init]; person.age = self.age; person.name = self.name; return person; } (3、)使用 Person *person1 = [[Person alloc]init]; person1.name = @"zhangsan"; person1.age = 23; Person *p2 = [person1 copy]; NSLog(@"%@",p2.name);
0 0
- iOS软件开发 内存管理之拷贝
- iOS开发之 内存管理以及深浅拷贝
- iOS开发之OC内存管理
- iOS开发之理解内存管理
- iOS开发内存管理之番外篇
- iphone开发内存管理之三──深拷贝和浅拷贝
- iphone开发内存管理之三──深拷贝和浅拷贝
- iphone开发内存管理之──深拷贝和浅拷贝
- iOS 内存管理~浅拷贝(Shallow Copy)
- iOS 内存管理~深拷贝(Deep Copy)
- iOS 内存管理~自定义对象的拷贝
- iOS 内存管理~深浅拷贝~引用计数器
- iOS开发-内存管理
- iOS开发内存管理
- iOS开发内存管理
- IOS开发-内存管理
- iOS开发-内存管理
- iOS开发------内存管理
- phalapi-入门篇4(国际化高可用和自动生成文档)
- MFC Toolbar图标尺寸调整出错解决方法
- 操作系统和网络面试总结
- [解析]Objective-C 深浅拷贝
- ACM学习-破坏行动-最大网络流
- iOS软件开发 内存管理之拷贝
- C#学习之路,学习笔记 2.1 整形、浮点型和decimal型变量
- a+1与&a+1
- copy
- 洛谷2023维护序列(线段树区间乘+区间加)
- 一道Erlang测试题的多种解法
- 手势操作
- 【bzoj1857】[Scoi2010]传送带
- 英语九月总结