将对象从一个 NSDictionary 复制到另一个的最干净的方法是什么?我必须从字典中提取特定值并将它们存储在新字典中。目前我有一些像这样的简单代码......
NSString *value1 = [dictA objectForKey:@"1"];
[dictB setObject:value1 forKey:@"1"];
...但感觉它的通用代码比我想要的要多。我必须这样做很多次,我想知道是否有更清洁的方法来做到这一点。
提前感谢您的智慧!
将对象从一个 NSDictionary 复制到另一个的最干净的方法是什么?我必须从字典中提取特定值并将它们存储在新字典中。目前我有一些像这样的简单代码......
NSString *value1 = [dictA objectForKey:@"1"];
[dictB setObject:value1 forKey:@"1"];
...但感觉它的通用代码比我想要的要多。我必须这样做很多次,我想知道是否有更清洁的方法来做到这一点。
提前感谢您的智慧!
在现代 Objective-C 语法中,您实际上可以dictA[@"key1"] = dictB[@"key1"]
使用可变字典编写。
If you want to do this for a lot of keys, consider using + (id)dictionaryWithSharedKeySet:(id)keyset
. You'll have to create the keyset first with sharedKeySetForKeys:
This would lead to only two lines of code...
假设两个字典之间的键是相同的,那么也许你可以制作一个这样的辅助方法:
- (void)copyObjectFromDictA:(NSDictionary *)dictA toDictB:(NSDictionary *)dictB forKeys:(NSArray *)keys
{
for (NSString *key in keys)
{
[dictB setObject:[dictA objectForKey:key] forKey:key]];
}
}
为什么不在一行中?
[dictB setObject:[dictA objectForKey:@"1"] forKey:@"1"];
在上面的代码中,您可以根据需要更改密钥。