gpt4 book ai didi

ios - 生成 NSDictionary 的深拷贝以修改嵌套值

转载 作者:行者123 更新时间:2023-11-28 09:01:40 25 4
gpt4 key购买 nike

想象一下您有一个包含不同类型的键和值的 NSDictionary(不是 Dictionary)的场景,例如 NSNumber和另一个 NSDictionary。并且可能有多个嵌套的 NSDictionary。您现在需要查看此结构中的每个字典(无论嵌套多远)以查找特定键,并在找到它的任何地方将其值替换为不同的值。

这如何在 Swift 中实现 - 特别是 Swift 2?

我认为可以创建此结构的深度可变副本 (NSMutableDictionary),然后可能使用递归来处理和修改每个字典(如有必要)。完成后,将原始结构替换为修改后的可变结构。如果这是一种好方法,那么如何执行此结构的深层可变副本才能使用它呢?或者还可以如何实现?

例如,这可能是字典:

{
NUMFRIENDS = 3;
GREETING =
{
HELLO = WORLD;
WHATSUP = DUDE;
...
}
HELLO = WORLD;
...
}

并且您希望找到所有 HELLO 键并将它们的值替换为 UNIVERSE

最佳答案

在 Objective-C 中我一直在使用这个技巧:

[NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:self]]

这会使用 NSCoding 协议(protocol)自动对所有对象进行深度复制。

所以在 Swift 中同样的技巧应该起作用:

NSKeyedUnarchiver.unarchiveObjectWithData(NSKeyedArchiver.archivedDataWithRootObject(self))

关于ios - 生成 NSDictionary 的深拷贝以修改嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31870557/

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