NSMutableArray 的copy问题
2016-06-14 17:57
399 查看
最近遇到一个坑,copy来的数组有问题,所以就有了下面的实验;
最后得出:可变数组的copy 后 是两个数组,两块地址,但copy出来的数组是不可变数组,
不能做删除操作,如果要操作copy后的数组要用可变数组重新接受,
@property (nonatomic, copy) NSMutableArray *testArray;
@property (nonatomic, retain) NSMutableArray *modelArray;
@end
@implementation ViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
- (void)dealloc
{
}
- (void)viewDidLoad {
[super viewDidLoad];
NSString *string1 = @"123";
NSString *string2 = @"23";
NSString *string3 = @"3";
self.modelArray = [NSMutableArray array];
[self.modelArray addObject:string1];
[self.modelArray addObject:string2];
[self.modelArray addObject:string3];
//self.testArray = [NSMutableArray array];
self.testArray = _modelArray;
NSLog(@"%@",_testArray);
NSString *text = @"text";
[_modelArray removeObjectAtIndex:0];
NSLog(@"%@",_modelArray);
NSLog(@"%@",_testArray);
[self.modelArray addObject:text];
NSMutableArray *array = [NSMutableArray arrayWithArray:_testArray];
[array removeObjectAtIndex:0];
NSLog(@"%@",_modelArray);
}
最后得出:可变数组的copy 后 是两个数组,两块地址,但copy出来的数组是不可变数组,
不能做删除操作,如果要操作copy后的数组要用可变数组重新接受,
@property (nonatomic, copy) NSMutableArray *testArray;
@property (nonatomic, retain) NSMutableArray *modelArray;
@end
@implementation ViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
- (void)dealloc
{
}
- (void)viewDidLoad {
[super viewDidLoad];
NSString *string1 = @"123";
NSString *string2 = @"23";
NSString *string3 = @"3";
self.modelArray = [NSMutableArray array];
[self.modelArray addObject:string1];
[self.modelArray addObject:string2];
[self.modelArray addObject:string3];
//self.testArray = [NSMutableArray array];
self.testArray = _modelArray;
NSLog(@"%@",_testArray);
NSString *text = @"text";
[_modelArray removeObjectAtIndex:0];
NSLog(@"%@",_modelArray);
NSLog(@"%@",_testArray);
[self.modelArray addObject:text];
NSMutableArray *array = [NSMutableArray arrayWithArray:_testArray];
[array removeObjectAtIndex:0];
NSLog(@"%@",_modelArray);
}
相关文章推荐
- Window.open详解
- 报错:镜像需要维护
- nginx安装的一些问题
- 使用greenDao出现Property 'status' is not part of ********.NewCommentDao@717de9a
- linux 目录
- Hadoop Web项目--Mahout0.10 MR算法集锦
- akira之修改linux 4.6.2内核并添加系统调用
- linux环境变量设置方法总结(PATH/LD_LIBRARY_PATH)
- Linux Shell 中的反引号,单引号,双引号
- linux--几种常见的进程调度算法
- Linux资源监控工具
- Linux用户和权限管理
- Linux基本命令之find命令详解
- linux下查看硬盘型号、大小等信息(含Raid)
- Linux下配置php运行环境
- CentOS挂载windows共享文件夹
- CP2528触摸按键驱动(Linux 轮询)
- Apache Maven与Eclipse整合简易教程
- linux-centos jdk安装
- (总结)CentOS Linux搭建SVN Server配置详解