2016.8.18
把一个可变量对应的方法让一个不可变量来调用
mutating method(可变量对应的方法):是那些在创建后可以被更改的变量所拥有的method,比如NSMutableArray,NSMutableDictionary 等
immutable object(不可改变的变量):就是那些被创建后不能被改变的变量:比如 NSArray NSDictionary等;
@property(nonatomic,strong)NSMutableArray*idArr;//身份证照片数组 存放的是图片地址
//idArr是从一个不可改变的变量类型为person.idCards得到的,所以,idArr这里也是一个不可改变量(即使我声明用的是NSMutableArray),但显然addObject是一个改变变量的操作,所以这是不允许的
就是因为这个变量之前被赋值了,而无法把一个可变的方法固执给一个不可变的对象
self.idArr= (NSMutableArray*)person.idCards;
//会崩在这一句
[_personalViewModel.idArraddObject:imgUrl];
//报错原因如下
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
//修改后即可
[self.idArraddObjectsFromArray:person.idCards];