将对象从一个NSDictionary复制到另一个NSDictionary的最简洁方法是什么?我必须从字典中提取特定值并将它们存储在新字典中。目前我有一些简单的代码,如此......
NSString *value1 = [dictA objectForKey:@"1"];
[dictB setObject:value1 forKey:@"1"];
...但感觉它有比我想要的更常见的代码。我必须多次这样做,我想知道是否有更清洁的方法来做到这一点。
提前感谢您的智慧!
答案 0 :(得分:6)
在现代Objective-C语法中,您实际上可以使用可变字典编写dictA[@"key1"] = dictB[@"key1"]
。
答案 1 :(得分:4)
如果您想为很多密钥执行此操作,请考虑使用+ (id)dictionaryWithSharedKeySet:(id)keyset
。您必须先使用sharedKeySetForKeys:
创建密钥集
这将导致只有两行代码...
答案 2 :(得分:1)
为什么不在一行?
[dictB setObject:[dictA objectForKey:@"1"] forKey:@"1"];
在上面的代码中,您可以根据需要更改密钥。
答案 3 :(得分:1)
假设两个词典之间的键是相同的,那么也许你可以制作一个这样的辅助方法:
- (void)copyObjectFromDictA:(NSDictionary *)dictA toDictB:(NSDictionary *)dictB forKeys:(NSArray *)keys
{
for (NSString *key in keys)
{
[dictB setObject:[dictA objectForKey:key] forKey:key]];
}
}