我有一个带有一些值的可变数组,在这个数组中,我在索引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:]:发送到不可变对象的变异方法'
请帮帮我。请分享您的宝贵知识。
答案 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"];
}
}
仅在最后一个字典输出
中添加数据