IOS nsmutable数组索引no 2用旧值插入一个值或字典

时间:2015-01-07 09:50:51

标签: ios insert nsmutablearray

我有一个带有一些值的可变数组,在这个数组中,我在索引No 3上添加了一个带有旧值的字典,我的意思是说我在索引no 3上再添加一个值这是我的数据 **这是我的可变阵列**

(        {
        Amount = 40;
        DisplayMessage = "Select at least 1 item and a maximum of 1";
        DisplayOrder = 1;
        IsMandatory = 1;
        IsQtyEditable = 0;

    },
        {
        Amount = 30;
        DisplayMessage = "Select at least 1 item and a maximum of 1";
        DisplayOrder = 1;
        IsMandatory = 1;
        IsQtyEditable = 0;

    },
        {
        Amount = 10;
        DisplayMessage = "Select at least 1 item and a maximum of 1";
        DisplayOrder = 1;
        IsMandatory = 1;
        IsQtyEditable = 0;

    }
)

在索引号3上我添加了词典 mytxt = 1; 像这样(在最后一行我添加了mytxt = 1;在索引号3上)

{
            Amount = 10;
            DisplayMessage = "Select at least 1 item and a maximum of 1";
            DisplayOrder = 1;
            IsMandatory = 1;
            IsQtyEditable = 0;
            mytxt = 1;
        }

这是我的代码我尝试这个但是返回错误

for (int i =0; i< ArrayGetParent.count; i++) {

                        if(i == 3 )
                        {
                            NSMutableDictionary *dictArray=[[NSMutableDictionary alloc]init];
                            [dictArray setValue:@"1" forKey:@"mytxt"];
                            NSLog(@"%@",dictArray);
                            [nishantArray insertObject:dictArray atIndex:i];
                        }
                    }

这是我的错误 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:' - [__ NSCFArray insertObject:atIndex:]:发送到不可变对象的变异方法'

请帮帮我。请分享您的宝贵知识。

2 个答案:

答案 0 :(得分:0)

nishantArray不可变,请检查您定义的位置并进行更改

答案 1 :(得分:0)

将数组定义为:

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

注意:您根据数组只有三个对象,而在for循环中,您需要i = 3,这是不可能的。

解决方案:

for (int i =0; i< ArrayGetParent.count; i++) {

        if(i == 2)
        {
            [[ArrayGetParent objectAtIndex:i] setObject:@"1" forKey:@"mytxt"];

        }
    }

仅在最后一个字典输出

中添加数据

enter image description here