【问题标题】:change object in NSMutableArray更改 NSMutableArray 中的对象
【发布时间】:2013-02-13 07:42:37
【问题描述】:

我有一个 NSMutableArray。 这是我的数组的结构:

{
Distance = 0;
Name = Name1;
Town = Town1;
}
{
Distance = 0;
Name = Name2;
Town = Town2;
}

现在我想替换“距离”。例如“距离 = 15”。

我该怎么做?

【问题讨论】:

    标签: objective-c object replace nsmutablearray


    【解决方案1】:

    好的,假设您的初始 NSMutableArray 称为 initial(假设它包含 NSMutableDictionary 对象...

    改变第一个元素的distance 值:

    [[initial objectAtIndex:0] setValue:[NSNumber numberWithInt:15] 
                               forKey:@"Distance"];
    

    如果您想对数组中的每个条目执行更正,只需这样做:

    for (NSMutableDictionary* entry in initial)
    {
         [entry setValue:[NSNumber numberWithInt:15] 
                  forKey:@"Distance"];
    }
    

    【讨论】:

    • 2013-02-13 08:54:42.591 Heurigen-App[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 错误信息是不言自明的,不是吗?正如我已经提到的,数组必须包含NSMutableDictionary 的实例。如果它们只是 NSDictionary 实例(= IMmutable),它们怎么能被改变?
    • @theandrew 你能发布你创建初始数组的代码吗?
    • news = [NSJSONSerialization JSONObjectWithData:data options:nil error:nil];
    • @theandrew 试试这个:news = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:NULL];。它应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2019-02-07
    相关资源
    最近更新 更多