只想合并两个NSDictionary
或NSMutableDictionary
,NSMutableSet
intersectSet
[NSMutableDictionary addEntriesFromDictionary:]
只有dict1
值。
Dict 1 = @{@”One”: @””, @”Two”: @”"}
Dict 2 = @{@”One”: @”1”, @”Two”: 2, @”Three”: @”3"}
合并后的预期输出 = @{@"一": @"1", @"二": @"2"}
更新
我已经尝试过[Dict1 addEntriesFromDictionary:Dict2]
这个给出答案@{@”One”: @”1”, @”Two”: 2, @”Three”: @”3"}
我也尝试过NSMutableSet
NSMutableSet *keysInA = [NSMutableSet setWithArray:tempDict.allKeys];
NSSet *keysInB = [NSSet setWithArray:tempDict1.allKeys];
[keysInA intersectSet:keysInB];
NSLog(@"keys in A that are not in B: %@", keysInA);
这个给出输出One, Two, Three
.
所以[NSMutableSet setWithArray:]
和[NSMutableDictionary addEntriesFromDictionary:]
不会给出我所期望的。
如果上面的代码有任何工作,请清除我。谢谢。
NSDictionary *dict1 = @{@"One": @"", @"Two": @"6"};
NSDictionary *dict2 = @{@"One": @"1", @"Two": @"2", @"Three": @"3"};
NSDictionary * dict = [dict2 dictionaryWithValuesForKeys:[dict1 allKeys]];
NSLog(@"dict %@",dict);
// Log value
dict {
One = 1;
Two = 2;
}
这是我所期望的。
试试这个...
//Assuming both dictionaries have same kind of keys
NSMutableDictionary *dict1 = @{@"One" : @"", @"Two": @"", @"Three" : @""}.mutableCopy;
NSDictionary *dict2 = @{@"One" : @"1", @"Two": @"2", @"Three" : @"3",@"Four":@"4"};
for (NSString *key in dict1.allKeys)
{
if (dict2[key])
{
dict1[key] = dict2[key];
}
}
NSLog(@"Updated dict %@",dict1);