OC为什么需要copy
来源:互联网 发布:linux操作系统入门书籍 编辑:程序博客网 时间:2024/05/19 19:56
作为一个菜鸟写了几个app后突然发现自己对此产生疑问。
因为很少用到copy,仅仅也就知道深复制、浅复制的一些概念而已,那什么时候使用呢?
+ (NSArray *)retrieveInventoryItems { NSMutableArray *inventory = [NSMutableArray array]; NSError *err; NSArray *jsonInventory = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:kInventoryAddress]] options:NSJSONReadingAllowFragments error:&err]; [jsonInventory enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { NSDictionary *item = obj; [inventory addObject:[[IODItem alloc] initWithName:[item objectForKey:@"Name"] andPrice:[[item objectForKey:@"Price"] floatValue] andPicFile:[item objectForKey:@"Image"]]]; }]; return [inventory copy];}
看到这里返回了一个copy,原本inventory是mutable版本的,我们用copy就可以返回一个immutable版本的,和强制转换差不多。
还是自己基础不扎实,正如上面所述,不管这里返回一个用copy还是mutableCopy,都是NS类打头类种自带的,如果自己创建了类,想用这个,就必须用到<NSCopying>,重写copyWithZone,来实现对copy的使用。
0 0
- OC为什么需要copy
- oc copy
- 随笔1:为什么copy函数需要定义中间指针get
- iOS-OC为什么需要重写setter或getter方法?
- 关于OC对象属性中的NSString类型为什么用copy修饰
- OC语法之Copy
- 19-OC-copy语法
- 黑马程序员---oc copy
- OC中的copy
- OC中的copy
- OC的copy
- iOS - OC Copy拷贝
- OC中的copy
- OC copy关键字
- 探讨OC的内存管理 以及防止循环引用retain cycle 代理为什么用weak block为什么用copy
- OC 中 浅 copy 和 深 copy
- OC的深Copy和浅Copy
- NSString为什么使用copy
- IOS开发基础Object-C(13)—— protocol协议
- ubuntu常用快捷键记录
- xendesktop7.6虚拟桌面U盘重定向
- C#版及nodejs版的com端口监听程序
- LeetCode 148:Sort List
- OC为什么需要copy
- 使用Windbg解析dump文件
- 两标关联update
- 2016, 新的一年,新的起点
- [easyui]单例模式封装组件,提高性能,按需使用
- 机器学习(三):分类算法之决策树算法
- 20160103
- poj 1144 Network
- Android大牛博客