2016-06-22 77 views
0

我有两个词典就像一个在下面:比较一个字典的值到另一个词典的按键

Dictionary 1: 
keyIdDict { 
    "Feb 5, 2015" =  (
     607 
    ); 
    "Nov 9, 2009" =  (
     431, 
     433, 
     435 
); 
} 

Dictionary 2: 
rollImageDict { 
    607 = "/Users/betteruse/Pictures/iPhoto Library.photolibrary/Masters/2014/10/21/20141021-160023/06122009123.jpg"; 
    433 = "/Users/betteruse/Pictures/iPhoto Library.photolibrary/Masters/2014/10/21/20141021-160023/06122009124.jpg"; 
    417 = "/Users/betteruse/Pictures/iPhoto Library.photolibrary/Masters/2014/10/21/20141021-160023/06122009125.jpg"; 
    419 = "/Users/betteruse/Pictures/iPhoto Library.photolibrary/Masters/2014/10/21/20141021-160023/06122009126.jpg"; 
    421 = "/Users/betteruse/Pictures/iPhoto Library.photolibrary/Masters/2014/10/21/20141021-160023/06122009129.jpg"; 
    435 = "/Users/betteruse/Pictures/iPhoto Library.photolibrary/Masters/2014/10/21/20141021-160023/06122009130.jpg"; 
} 

我想在第一个字典即607"/Users/betteruse/Pictures/iPhoto Library.photolibrary/Masters/2014/10/21/20141021-160023/06122009123.jpg"

最终结果替换值预期:

keyIdDict { 
    "Feb 5, 2015" =  (
     "/Users/betteruse/Pictures/iPhoto Library.photolibrary/Masters/2014/10/21/20141021-160023/06122009123.jpg" 
    ); 
} 

有人可以帮助我吗?

回答

0

在这里你去:

NSMutableDictionary *newDictionary = [NSMutableDictionary dictionary]; 
[keyIdDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){ 
    NSArray *array = [rollImageDict objectsForKeys:obj notFoundMarker:[NSNull null]]; 
    [newDictionary setObject:array forKey:key]; 
}]; 
+0

它的工作。非常感谢 :) –

0

我没有我的Mac编写的代码,但它是非常简单,只要按照步骤

首先遍历字典(词典1)和可变

获得的价值你会有类似的东西

607 //first iteration 
431,433,435 // second iteration 

然后再次拆分该值,并再次迭代它。

所以现在当你分割和迭代时,你将有607作为值,迭代每个值。

每次迭代获取来自其他字典

完成值..

0

我没有测试,但你可以试试这个代码

NSMutableDictionary *newDic = [[NSMutableDictionary alloc] initWithCapacity:0]; 
    for (NSNumber *rollNum in rollImageDict) { 
     for (NSString *str in keyIdDict) { 
      NSMutableArray *temp = [[NSMutableArray alloc] initWithCapacity:0]; 
      for (NSNumber *keyNum in keyIdDict[str]) { 
       if (rollNum == keyNum) { 
        [temp addObject:rollImageDict[rollNum]]; 
       } 
      } 
      newDic[str] = temp; 
     } 
    } 
+0

我试过你的方法。它可以工作,但它会用图像路径替换整个阵列。 –

+0

我改变了一些东西,这样对应的日期就不能在数组中有重复的数字。 – Jeason

+0

它崩溃说***集合<__ NSArrayM:0x608000045d60>被枚举时发生了变异。 –

相关问题