我有NSMutableArray如下。
我有NSMutableArray数据如下。
(
{
Id = 3;
Name = Fahim;
},
{
Id = 2;
Name = milad;
},
{
Id = 1;
Name = Test;
}
)
我想将milad
更改为New Name
表示我想更新索引1处对象的数据。
知道如何完成这项工作吗?
答案 0 :(得分:4)
NSMutableDictionary *miladData = [array[1] mutableCopy];
[miladData setObject:@"New Name" forKey:@"Name"];
[array replaceObjectAtIndex:1 withObject:miladData];
答案 1 :(得分:2)
NSMutableDictionary *tempDict = [[yourArray objectAtIndex:1] mutableCopy];
[tempDict setObject:@"New Name" forKey:@"Name"];
[yourArray replaceObjectAtIndex:1 withObject:tempDict];
答案 2 :(得分:2)
如果数组中的对象是可变的(例如NSMutableDictionary
),则可以更改实际字段,而不必替换数组中的任何内容:
NSMutableDictionary *dict = [array objectAtIndex:1];
[dict setObject:@"New Name" forKey:@"Name"];
如果数组中的对象是不可变的,则必须以正确的索引替换该对象:
NSDictionary *dict = @{@"Id":@2, @"Name":@"New Name"};
[array replaceObejectAtIndex:1 withObject:dict];
你也可以通过创建一个可变副本来做到这一点(但在这种情况下,与第一个不同,你将设置回数组):
NSMutableDictionary *dict = [[array objectAtIndex:1] mutableCopy];
[dict setObject:@"New Name" forKey:@"Name"];
[array replaceObejectAtIndex:1 withObject:dict];
顺便说一句,词典中的Id
值不是我们用来定位数组中的内容的。如您所指定,我们正在使用索引。如果你想根据这些Id记录查找值,请说明,因为代码会不同。
答案 3 :(得分:1)
获得对象索引后,应该替换对象。
[arrayOfData replaceObjectAtIndex:yourIndex withObject:yourObject];
答案 4 :(得分:1)
您需要在NSMutableArray
中的给定索引处创建字典对象的可变副本。修改所需密钥的值。使用NSMutableArray
API
[mutableArray replaceObjectAtIndex:index withObject:mutableCopiedObj];
希望有所帮助!