将 NSArray 值添加到 NSDictionary 而不是引用
Add NSArray value to NSDictionary not a reference
我正在尝试使用以下代码插入具有动态数组值的键值对。它用最后存储的数组对象替换所有值的数组内容。请建议如何存储数组的副本而不是引用。
示例代码:
for (i = i - 1; i >= 0; i--) {
[dict setObject:urlArray forKey:rootDate];
[urlArray removeAllObjects];
[urlArray addObject:[[history objectAtIndex:i] objectAtIndex:0]];
}
还尝试了返回相同结果的 setValue 方法。
{
"18/03/15" = (
"http://www.yahoo.com"
);
"24/03/15" = (
"http://www.google.com",
"http://www.youtube.com"
);
}
收到的实际输出:
{
"18/03/15" = (
"http://www.google.com",
"http://www.youtube.com"
);
"24/03/15" = (
"http://www.google.com",
"http://www.youtube.com"
);
}
for (i = i - 1; i >= 0; i--) {
[dict setObject:[urlArray mutableCopy] forKey:rootDate];
[urlArray removeAllObjects];
[urlArray addObject:[[history objectAtIndex:i] objectAtIndex:0]];
}
如果您不希望数组可变,也可以使用 [urlArray copy]
。
只需根据您的需要创建 copy/mutableCopy urlArray
for (i = i - 1; i >= 0; i--) {
[dict setObject:[urlArray copy] forKey:rootDate];
[urlArray removeAllObjects];
[urlArray addObject:[[history objectAtIndex:i] objectAtIndex:0]];
}
我正在尝试使用以下代码插入具有动态数组值的键值对。它用最后存储的数组对象替换所有值的数组内容。请建议如何存储数组的副本而不是引用。 示例代码:
for (i = i - 1; i >= 0; i--) {
[dict setObject:urlArray forKey:rootDate];
[urlArray removeAllObjects];
[urlArray addObject:[[history objectAtIndex:i] objectAtIndex:0]];
}
还尝试了返回相同结果的 setValue 方法。
{
"18/03/15" = (
"http://www.yahoo.com"
);
"24/03/15" = (
"http://www.google.com",
"http://www.youtube.com"
);
} 收到的实际输出:
{
"18/03/15" = (
"http://www.google.com",
"http://www.youtube.com"
);
"24/03/15" = (
"http://www.google.com",
"http://www.youtube.com"
);
}
for (i = i - 1; i >= 0; i--) {
[dict setObject:[urlArray mutableCopy] forKey:rootDate];
[urlArray removeAllObjects];
[urlArray addObject:[[history objectAtIndex:i] objectAtIndex:0]];
}
如果您不希望数组可变,也可以使用 [urlArray copy]
。
只需根据您的需要创建 copy/mutableCopy urlArray
for (i = i - 1; i >= 0; i--) {
[dict setObject:[urlArray copy] forKey:rootDate];
[urlArray removeAllObjects];
[urlArray addObject:[[history objectAtIndex:i] objectAtIndex:0]];
}