在NSMutableArray中更改对象
问题描述:
我有一个NSMutableArray。 在这是我的阵列结构:在NSMutableArray中更改对象
{
Distance = 0;
Name = Name1;
Town = Town1;
}
{
Distance = 0;
Name = Name2;
Town = Town2;
}
现在我要替换“距离”。例如,“距离= 15”。
我该怎么做?
答
OK,让我们说你最初NSMutableArray
被称为初始(因为它包含NSMutableDictionary
对象...
要改变的第一个元素的distance
值:
[[initial objectAtIndex:0] setValue:[NSNumber numberWithInt:15]
forKey:@"Distance"];
IF你想执行更正每条目在ar射线,只是做这种方式:
for (NSMutableDictionary* entry in initial)
{
[entry setValue:[NSNumber numberWithInt:15]
forKey:@"Distance"];
}
2013年2月13日08:54:42.591的Heurigen-应用[555:11c03] ***终止应用程序由于未捕获的异常 'NSInternalInconsistencyException',原因是:“ - [ __NSCFDictionary的setObject:forKey:]:突变方法发送到不可变对象” ***第一掷调用堆栈: (0x1848012 0x1178e7e 0x1847deb 0x180e347 0xb919bf 0x6226 0x17af4b 0x17b01f 0x16380b 0x17419b 0x11092d 0x118c6b0 0x2fbefc0 0x2fb333c 0x2fb3150 0x2f310bc 0x2f32227 0x2f328e2 0x1810afe 0x1810a3d 0x17ee7c2 0x17edf44 0x17ede1b 0x17a27e3 0x17a2668 0xc065c 0x26bd 0x25e5) libC++ abi.dylib:终止调用抛出异常 (lldb) – theandrew 2013-02-13 07:57:29
@theandrew错误消息是相当自我解释器你不是吗?正如我已经提到的,数组必须包含'NSMutableDictionary'的实例。如果他们只是'NSDictionary'实例(= IMmutable),他们怎么可能被改变? – 2013-02-13 07:58:42
我该如何解决这个错误?对不起,我不是profi-programmer – theandrew 2013-02-13 08:00:05