objective c,copy, mutableCopy区别
2024-08-28 15:34:23
copy总是返回不能被修改的对象,mutableCopy返回可以被修改的对象
例:
NSArray *array = @[@"test", @"test2"];
NSMutableArray *arrayMu = [array copy];// arrayMu实际上被赋值成一个 NSArray 对象,这是如果调用NSMutableArray特有的方法会crash,例如[arrayMu removeObject:@"test"];
NSMutableArray *arrayM = [array mutableCopy]; //此时arrayM被赋值的是一个NSMutalbeArray对象,这时调用NSMutableArray特有的方法不会出现问题
另一个常见问题:
@property (nonatomic, copy) NSMutalbeArray *array; 这样声明有什么问题?
array 被赋值时得到的其实是一个NSArray对象,调用NSMutableArray特有的方法时会crash
例如这样调用:
NSMutableArray *testArray = [NSMutableArray arrayWithObjects:@"test", @"test2"];
self.array = testArray;//这行代码实际上相当于_array = [testArray copy];得到的是NSArray对象
最新文章
- UVA - 11584 Partitioning by Palindromes[序列DP]
- input type=";number";
- 一些好的python IDE
- 创建URL为空的解决办法
- RectAnimation用于在DrawingVisual画进度条
- 【JQGRID DOCUMENTATION】.学习笔记.4.Navigator
- 动态创建dom元素
- 尽历磨难,搞定OPEN VSWITCH安装
- 一笔画问题(floyd+oular+dfs)
- 这两天dede 仿站的收货
- AI - TensorFlow - 示例03:基本回归
- 使用fiddler模拟控制网速,实现网速慢。(丢包如何模拟)
- BZOJ3393 [Usaco2009 Jan]Laserphones 激光通讯 BFS
- js日期的格式化
- 使用VBA,优化处理Excel表格
- 读书笔记(chapter7)
- 新增节点NewBook并增加属性Name=";WPF";
- YUICompressor的安装及使用(一)
- Chubby是什么?
- Emmagee—开源Android性能测试工具