将一个对象从一个NSDictionary复制到另一个NSDictionary的最干净的方法是什么?我必须从字典中提取特定的值并将它们存储在新字典中。目前我有一些简单的代码,像这样…
NSString *value1 = [dictA objectForKey:@"1"];
[dictB setObject:value1 forKey:@"1"];
…但感觉它有比我想要的更多的通用代码。我必须这样做很多次,我想知道是否有更干净的方法来做到这一点。
提前感谢您的智慧!
在现代Objective-C语法中,您实际上可以使用可变字典编写dictA[@"key1"] = dictB[@"key1"]
。
如果您想为很多键执行此操作,请考虑使用+ (id)dictionaryWithSharedKeySet:(id)keyset
。您必须首先使用sharedKeySetForKeys:
创建密钥集这将导致只有两行代码…
假设两个字典之间的键相同,那么也许您可以创建这样的辅助方法:
- (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"];
在上面的代码中,您可以根据需要更改键。