美文网首页
iOS 对于可变数组的操作的注意

iOS 对于可变数组的操作的注意

作者: 夏天爱西瓜汁 | 来源:发表于2017-11-28 11:17 被阅读11次

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];

相关文章

  • iOS 对于可变数组的操作的注意

    2016.8.18 把一个可变量对应的方法让一个不可变量来调用 mutatingmethod(可变量对应的方法):...

  • IOS 数组的一些操作

    ios可变数组的所有操作 #pragma mark 创建数组c NSMutableArray * array =[...

  • 数组类常用操作方法

    一、数组 二、不可变数组(NSArray) 三、不可变数组的操作 四、可变数组(NSMutableArray)的操作

  • OC中数组总结

    不可变数组(NSArray) 创建及初始化 数组元素的操作 可变数组(NSMutableArray)

  • iOS可变数组的所有操作

  • Swift学习系列 数组

    一、数组的基本操作 1、数组的定义 Swift中的数组跟OC类似 分为可变数组和不可变数组。数据类型为Array。...

  • python的魔法方法__iadd__

    对于+号操作,可变对象和不可变对象调用的都是add操作 对于+=号操作,可变对象调用add,不可变对象调用的是ia...

  • iOS 不闪退的集合实践

    在iOS开发过程中,我们常见的集合类中主要包括: 不可变的数组–NSArray 可变的数组–NSMutableAr...

  • iOS runtime swizzle 黑魔法

    NSMutableArray数组越界崩溃解决 对一个可变数组操作很频繁,并且在多个线程操作同一个可变数组时,发生数...

  • iOS--小知识点

    iOS--小知识点 一. 颜色渐变 三. 使用drowRect绘制简单图形 四. 可变数组与不可变数组之间的转换 ...

网友评论

      本文标题:iOS 对于可变数组的操作的注意

      本文链接:https://www.haomeiwen.com/subject/frbdbxtx.html