我试图将字典键添加到数组中的对象,然后将它们添加到最终数组中:
NSMutableDictionary *newVen = [NSMutableDictionary dictionary];
NSMutableArray *final = [[NSMutableArray alloc] init];
for (NSDictionary *obj in self.venues) {
[newVen setObject:[obj valueForKey:@"name"] forKey:@"name"];
[final addObject:newVen];
}
问题是它只添加相同的名称'到最后一个数组,当我打印出来时,让我们在3个循环后说:
<__NSArrayM 0x79e26990>(
{
name = Mustang;
},
{
name = Mustang;
},
{
name = Mustang;
}
)
我期待一系列不同的名字,例如野马,Ferarri,宝马
答案 0 :(得分:1)
问题是你要添加相同的mutabledict三次,第一次使用第一个对象的名称,第二次使用第二个名称改变第一个和第二个,蚂蚁第三次你正在改变所有因为都是相同的mutableDict。 我想你里面可能不需要一个可变的dict,你可以使用它:
NSMutableArray *final = [[NSMutableArray alloc] init];
for (NSDictionary *obj in self.venues) {
NSDictionary *newVen =@{@"name":[obj valueForKey:@"name"]};
[final addObject:newVen];
}
如果你需要你的dict里面的数组将是可变的使用这个:
NSMutableArray *final = [[NSMutableArray alloc] init];
for (NSDictionary *obj in self.venues) {
NSMutableDictionary *newVen =[NSMutableDictionary dictionaryWithDictionary:@{@"name":[obj valueForKey:@"name"]}];
[final addObject:newVen];
}