关于问题:reason: '* -[NSCFArray insertObject:atIndex:]: mutating method sent to immutable..

本文解决了iOS开发中上拉刷新出现的一个棘手问题:尝试使用可变方法操作不可变对象导致的应用崩溃。通过深入分析并调整代码实现方式,确保使用可变对象进行数据操作,避免了异常发生。

原本一个很小的上拉刷新 很简单 而且之前还做过,但是这次却问题百出,这个问题更是困扰了自己将近一天的时间,由于自己搞不定这个问题真的是无法入睡,于是放下手上的事情认真捋了捋思路,然后认真看了看这个文章搞定了,反复看了两边这个文章 认真理解下就能明白。

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

原文摘录如下:

错误提示:* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '* -[NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'

问题出现在语句:

[saveArray addObject:[NSNumber numberWithInt:saveNum]];

可变的方法发送给一个不可变的对象


ps:@property(nonatomic,retain) NSMutableArray * saveArray;

前面已经赋值:

 

NSMutableArray *array = [[NSMutableArray alloc] init];

self.saveArray = array;

[array release];




解决方法:

 

NSMutableArray *mutaArray = [[NSMutableArray alloc] init];

[mutaArray addObjectsFromArray:saveArray];


[mutaArray addObject:[NSNumber numberWithInt:saveNum]];

self.saveArray = mutaArray
[mutaArray release];




原文地址:http://blog.sina.com.cn/s/blog_6123f9650101b0zl.html

Proxying [POST /elements] to [POST http://127.0.0.1:8100/session/3E06EDD0-507D-41DF-AC63-F4D949C01A92/elements] with body: {"using":"predicate string","value":"name == \"允许\""} [WD Proxy] Got response with status 200: {"value":[{"ELEMENT":"31000000-0000-0000-9E44-000000000000","element-6066-11e4-a52e-4f735466cecf":"31000000-0000-0000-9E44-000000000000"}],"sessionId":"3E06EDD0-507D-41DF-AC63-F4D949C01A92"} [W3C (c55273bd)] Responding to client with driver.findElements() result: [{"element-6066-11e4-a52e-4f735466cecf":"31000000-0000-0000-9E44-000000000000","ELEMENT":"31000000-0000-0000-9E44-000000000000"}] [HTTP] <-- POST /wd/hub/session/c55273bd-5ec0-4623-bd95-d26c53801e78/elements 200 336 ms - 139 [HTTP] [HTTP] --> POST /wd/hub/session/c55273bd-5ec0-4623-bd95-d26c53801e78/element/31000000-0000-0000-9E44-000000000000/click [HTTP] {"id":"31000000-0000-0000-9E44-000000000000"} [W3C (c55273bd)] Driver proxy active, passing request on via HTTP proxy [XCUITest] Executing command 'proxyReqRes' [WD Proxy] Matched '/wd/hub/session/c55273bd-5ec0-4623-bd95-d26c53801e78/element/31000000-0000-0000-9E44-000000000000/click' to command name 'click' [WD Proxy] Proxying [POST /wd/hub/session/c55273bd-5ec0-4623-bd95-d26c53801e78/element/31000000-0000-0000-9E44-000000000000/click] to [POST http://127.0.0.1:8100/session/3E06EDD0-507D-41DF-AC63-F4D949C01A92/element/31000000-0000-0000-9E44-000000000000/click] with body: {"id":"31000000-0000-0000-9E44-000000000000"} [WD Proxy] Got response with status 500: {"value":{"error":"unknown error","message":"*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil","traceback":"(\n\t0 CoreFoundation 0x000000019d0fadc0 5F4831C9-4949-34EA-B373-3F45C312B753 + 40384\n\t1 libobjc.A.dylib 0x000000019b5859a0 objc_exception_throw + 56\n\t2 CoreFoundation 0x000000019d287b44 5F4831C9-4949-34EA-B373-3F45C312B753 + 1665860\n\t3 CoreFoundation 0x000000019d284df4 5F4831C9-4949-34EA-B373-3F45C312B753 + 1654260\n\t4 CoreFoundation 0x000000019d104d04 5F4831C9-4949-34EA-B373-3F45C312B753 + 81156\n\t5 XCUIAutomation 0x0000000101352e70 __104-[XCAXClient_iOS interruptingUIElementsAffectingSnapshot:checkForHandledElement:containsHandledElement:]_block_invoke + 1008\n\t6 XCTestCore 0x0000000100d91a84 -[XCTContext _runActivityNamed:type:block:] + 244\n\t7 XCTestCore 0x0000000100d90cc8 +[XCTContext... [W3C] Matched W3C error code 'unknown error' to UnknownError [HTTP] <-- POST /wd/hub/session/c55273bd-5ec0-4623-bd95-d26c53801e78/element/31000000-0000-0000-9E44-000000000000/click 500 413 ms - 857 [HTTP]
10-12
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值