2015-09-07 97 views
-3

I的结构具有包含这样的字典的数组:更改一个NSDictionary

这是我的代码:其中键是OBJ文件是“ABC”,“天空”和键是“T-4112-561 -560.ts”, “T-4112-561-561.ts”

array = [NSMutableArray array]; 

     [array addObjectsFromArray: keys]; 
     [array addObjectsFromArray: objs]; 

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjects: keys forKeys: objs]; 

[myArray addObject:[dict copy]]; 

这是我的输出:

2015-09-07 10:25:21.329 XBMC Remote[1082:454537] myArray: 
(
     { 
     ABC = "T-4112-561-560.ts"; 
    }, 
     { 
     SKY = "T-4112-561-561.ts"; 
    } 
) 

我需要的输出是这样的:

(
     { 
     Name=ABC; 
     value= "T-4112-561-560.ts"; 
    }, 
     { 
     Name=SKY; 
     value = "T-4112-561-561.ts"; 
    } 
) 
+2

你的代码请 – anhtu

+3

哪里“天空”从何而来? – Paulw11

+0

事实上,这个转换的关键是什么? – trojanfoe

回答

1

有不少,你可以做到这一点的几种方法,但基本上所有将要回落到通过数组循环,提取的字典中的值。有一些,你可以用方便的方法,如enumerateObjectsUsingBlock但为了保持它的简单,下面的代码使用简单for枚举循环 -

NSMutableArray *outputArray=[NSMutableArray new]; 


for (NSDictionary *dict in myArray) { 
    NSMutableDictionary *outputDictionary=[NSMutableDictionary new]; 
    for (NSString *key in dict.allKeys) { 
     NSString *value=dict[key]; 
     outputDictionary[@"name"]=key; 
     outputDictionary[@"value"]=value; 
    } 
    [outputArray addObject:outputDictionary]; 
} 
+0

你的代码检索输出如下: name =“T-4112-561-560.ts”; 但我需要的是: 名= “ABC”; 值= “T-4112-561-560.ts” – joe

+0

糟糕。抱歉。修正了 – Paulw11

+0

非常感谢你:) – joe