1

将对象从一个 NSDictionary 复制到另一个的最干净的方法是什么?我必须从字典中提取特定值并将它们存储在新字典中。目前我有一些像这样的简单代码......

NSString *value1 = [dictA objectForKey:@"1"];
[dictB setObject:value1 forKey:@"1"];

...但感觉它的通用代码比我想要的要多。我必须这样做很多次,我想知道是否有更清洁的方法来做到这一点。

提前感谢您的智慧!

4

4 回答 4

6

在现代 Objective-C 语法中,您实际上可以dictA[@"key1"] = dictB[@"key1"]使用可变字典编写。

于 2013-01-04T16:55:39.087 回答
4

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...

于 2013-01-04T17:03:18.350 回答
1

假设两个字典之间的键是相同的,那么也许你可以制作一个这样的辅助方法:

- (void)copyObjectFromDictA:(NSDictionary *)dictA toDictB:(NSDictionary *)dictB forKeys:(NSArray *)keys
{
  for (NSString *key in keys) 
  {
    [dictB setObject:[dictA objectForKey:key] forKey:key]];
  }
}
于 2013-01-04T16:55:40.353 回答
1

为什么不在一行中?

[dictB setObject:[dictA objectForKey:@"1"] forKey:@"1"];

在上面的代码中,您可以根据需要更改密钥。

于 2013-01-04T16:51:23.463 回答