gpt4 book ai didi

ios - 在循环中将对象添加到字典会覆盖以前的值

转载 作者:可可西里 更新时间:2023-11-01 06:20:42 25 4
gpt4 key购买 nike

我有三个 NSArray,我想将它们全部组合成一个 NSDictionary。问题是当我遍历数组并创建字典时,它会覆盖以前的对象。最后我的字典里只有一个对象。我究竟做错了什么?这是我的代码:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
for(int i=0; i<[array0 count]; i++) {
[dict setObject:[array0 objectAtIndex:i]
forKey:@"one"];
[dict setObject:[array1 objectAtIndex:i] f
orKey:@"two"];
[dict setObject:[array2 objectAtIndex:i]
forKey:@"three"];
}

也许这会澄清我的意思......这是我想要的结果:

{one = array0_obj0, two = array1_obj0, three = array2_obj0},
{one = array0_obj1, two = array1_obj1, three = array2_obj1},
{one = array0_obj2, two = array1_obj2, three = array2_obj2},
etc

谢谢

最佳答案

问题

您正在特定键处插入和替换同一对象。所以字典只有最后一个索引处的最后一个对象。

解决方案

使用此代码将三个数组添加到一个包含特定键的字典中。

NSDictionary *yourDictinary = @{@"one": array0, @"two": array1, @"three": array3};

编辑

如果您需要将 NSMutableArrays 的对象添加到一个 NSDictionary 中,您可以按照@ElJay 发布的答案进行操作,但这不是一个好的做法,因为您正在处理具有多个具有唯一键的对象。

更新

为了做到这一点,我们正在讨论单个 NSMutableArray 和多个 NSDictinary。

遵循这段代码:

NSMutableArray *allObjects = [NSMutableArray new];
for(int i=0; i<[array0 count]; i++) {
dict = @{@"one": array0[i], @"two": array1[i], @"three": array2[i]};
[allObjects addObject:dict];
}

关于ios - 在循环中将对象添加到字典会覆盖以前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23983249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com