美文网首页
NSMutableArray 通过代理传值出现问题

NSMutableArray 通过代理传值出现问题

作者: yscGr | 来源:发表于2017-01-15 18:02 被阅读0次

参考:http://blog.csdn.net/waiting_49/article/details/49079633

YSCAllViewController *all = [[YSCAllViewController alloc]init];

all.noneArray = arr; //noneArray 与 arr 都为可变数组

all.delegate = self;

[self.navigationController pushViewController:all animated:YES];

在 YSCAllViewController 中打印noneArray 会变成 __NSCFArray,此时需要新建一个新的NSMutableArray 来进行接下来操作,如下:

newMuArray = [NSMutableArray arrayWithCapacity:10];

newMuArray = [NSMutableArray arrayWithArray:noneArray];

这样我们就可以避免了 原本NSMutableArray 在执行 [NSMutableArray remove...]; 等操作的时候造成 

2017-01-15 18:00:18.564 Test_UICollectionVIew[1537:43155] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object'

这样的奔溃问题

相关文章

  • NSMutableArray 通过代理传值出现问题

    参考:http://blog.csdn.net/waiting_49/article/details/490796...

  • 多界面传值

    1. 基本概念 页面传值有多种方式,今天学的是通过属性传值和代理传值。属性传值就是通过一个按钮或者其他的控件加上触...

  • Swift常用的界面传值(属性传值、协议传值、闭包传值)

    1、属性传值 属性传值多用于正向传值(A->B) 2、代理传值 代理传值多用于反向传值(B->A) 3、闭包传值 ...

  • block开发使用场景

    block传值 利用block去代理代理传值 1. 代理传值 点击当前控制器Viewcontroller利用mod...

  • delegate - 代理基础- 02

    delegate-代理基础01 是什么? 协议代理的传值委托方 通过协议里含有参数的方法,将值传递到代理方。 回调...

  • iOS简单block的传值

    一直对block传值理解不深,觉得很复杂,所有遇见传值的问题大多数还是用代理传值,但是代理传值还得注册协议实现代理...

  • iOS中界面传值的几种方式

    1.属性传值 属性传值适用于顺序传值,从前面的界面传值给后面的界面。 2.代理传值 用代理的方式实现界面间传值稍微...

  • iOS-传值方式

    传值方式:1、属性传值 方法传值2、代理传值3、单例传值 4、通知传值 NSNotificationCente...

  • 代理

    一:代理传值 A跳转到B,若传值,直接属性即可,但是B返回到A若传值该怎么传值呢? 代理: A的声明中 建立协议 ...

  • Swift界面传值

    Swift中界面传值的方法 主要有三种 1.代理传值2.闭包传值(即OC中的Block) 属性传值 代理传值 F...

网友评论

      本文标题:NSMutableArray 通过代理传值出现问题

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