我认为我遇到了一个困惑的状态,我正在做一些根本错误的事情,但我无法理解为什么以及为什么会这样。
图1:我的班级的财产。一个NSMutableArray。
图2:我要执行的代码块,我想删除第11个对象。
图3:调试控制台向我显示我的数组中有30个对象。
现在,我在这里,认为这将是一件容易的事。因为,我已经删除并替换了源代码中其他NSMutableArrays中索引的对象。 图4:
我相信这告诉我NSMutableArray不响应removeObjectAtIndex。
有谁知道我做错了什么?我完全糊涂了。
不,这不是家庭作业......即使人们可以这么认为。我做。
修改: 在解析进入dagArray的对象期间发生了错误。
而不是[tempPeriod.dagArray addObject:object]
我正在做一些完全不同的事情。
我正在使用不同的数组并将对象添加到该数组中,当解析器完成后,我使用tempPeriod.dagArray = [theOtherArray copy]
导致此错误。 theOtherArray
仍然是NSMutableArray
仍然让我感到困惑。但我最好的猜测是copy
对NSMutableArray做了一些事情,使它无法执行那些选择器。但我可能完全错了。
感谢您对此提出一些想法。
答案 0 :(得分:2)
实际上它说NSArray
没有响应removeObjectAtIndex。这是真的。
可能是您将其定义为NSMutableArray
,但是以错误的方式初始化它?
你在哪里初始化数组,当前数组可能实际上是NSArray
?
,因为:
NSMutableArray *anArray = [[NSArray alloc] initWithObject:anObject];
是可能的,但是当您选择错误的选择器时会导致运行时错误。
答案 1 :(得分:2)
如果需要数组的可变副本,则需要使用-mutableCopy
。使用-copy
,即使在可变数组上,也会为您提供一个不可变数组。