reason: '* -[NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'

原创 2015年07月08日 13:20:36

错误提示 :
* Terminating app due to uncaught exception ‘NSInternalInconsistencyException’, reason: ‘-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object’

错误分析:
看reason:后面的异常说明:意思是我把一个可变量对应的方法让一个不可变量来调用
mutating method(可变量对应的方法):是那些在创建后可以被更改的变量所拥有的method,比如NSMutableArray,NSMutableDictionary 等
immutable object(不可改变的变量):就是那些被创建后不能被改变的变量:比如 NSArray NSDictionary等;
我的Exception被报出来是因为我有一行错误代码
[listAry removeObjectAtIndex:indexPath.row];
这里,我的array是从一个不可改变的变量类型为NSDictionary得到的,
代码为:NSMutableArray *listAry = [self.listDic objectForKey:@”list”];
所以,listAry这里也是一个不可改变量(即使我声明用的是NSMutableArray),但显然removeObjectAtIndex是一个改变变量的操作,所以这是不允许的。

错误解决前:
NSMutableArray *listAry = [[NSMutableArray alloc] initWithCapacity:0];
listAry = [self.listDic objectForKey:@"list"];

错误解决后:

NSMutableArray *listAry = [[NSMutableArray alloc] initWithCapacity:0];
[listAry addObjectsFromArray:[self.listDic objectForKey:@"list"]];

再啰嗦一句原因:就是因为这个变量之前被赋值了,而无法把一个可变的方法固执给一个不可变的对象。

如有不正确,还望批评指正….

TableViewCell常见的小问题

用TableViewCell经常遇到小问题搞到整个程序崩溃。 最常见的错误:unable to dequeue a cell with identifier cell - must registe...
  • u010962810
  • u010962810
  • 2013年08月03日 17:14
  • 6116

IOS开发复制的总结(深拷贝浅拷贝区别)

1.复制可变字符串 NSMutableString * city = [NSMutableString stringWithString:@"北京"]; //复制可变副...
  • u011496891
  • u011496891
  • 2015年05月05日 18:53
  • 1225

IOS开发的报错(异常)信

ios的一些报错信息或者异常出来,感觉不太清晰,没有java语音的更方便,这里记录一些自己遇到的常见的异常 1:uncaught exception 'NSRangeException', rea...
  • ab601026460
  • ab601026460
  • 2015年11月16日 12:29
  • 2301

iOS程序崩溃,提示[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object’的解决办法

iOS程序崩溃,提示[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object’的解决办法在做相册Demo...
  • waiting_49
  • waiting_49
  • 2015年10月12日 20:49
  • 1641

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<YHTargetTableViewCell

iOS开发使用StoryBoard拖的控件报这个错:Terminating app due to uncaught exception 'NSUnknownKeyException', reason:...
  • Ehome_hong
  • Ehome_hong
  • 2015年09月25日 17:36
  • 721

javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.IOException

使用activeMQ发送ObjectMessage类型时,遇到javax.jms.JMSException: Failed to build body from bytes. Reason: java...
  • goodbaby728
  • goodbaby728
  • 2013年05月16日 14:39
  • 2239

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArra

这个错误说的是一个不可变数组负值给了一个可变的数组。yo
  • u013434605
  • u013434605
  • 2014年08月05日 11:01
  • 2793

VMware虚拟机出现Reason: Failed to lock the file

打开VMware出现Cannot open the disk *.vmdk or one of the snapshot disks it depends on.Reason: Failed to l...
  • civilman
  • civilman
  • 2012年03月14日 23:21
  • 783

activemq报错:Failed to start ActiveMQ JMS Message Broker. Reason: java.io.EOFException: Chunk stream d

2016-10-11 17:16:25,452 | ERROR | Failed to start ActiveMQ JMS Message Broker. Reason: java.io.EOFEx...
  • liuxiao723846
  • liuxiao723846
  • 2016年10月11日 17:21
  • 1628

windows 下安装部分gem时出现 Could not create Makefile due to some reason 的解决办法

现象描述: 如果你安装某个需要本地编译代码的gem 时出现了类似如下的错误,则符合本文章所谈论的情况: C:/Develop/Ruby193/bin/ruby.exe extconf.rb ch...
  • woncomp
  • woncomp
  • 2013年04月11日 09:21
  • 1832
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:reason: '* -[NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
举报原因:
原因补充:

(最多只允许输入30个字)