2012-07-24 72 views
0

我试图从plist文件复制一个数组,但我失去了这个数组的键值。这是我的plist中加载的内容:字典键值丢失

NSString *path = [[NSBundle mainBundle]pathForResource:@"Cars" ofType:@"plist"]; 
NSDictionary *dict = [[NSDictionary alloc]initWithContentsOfFile:path]; 

self.brand = [dict objectForKey:@"Chevrolet"]; 

新字典品牌仅包含雪佛兰汽车(这是一个字符串数组)。新的字典声明为:

NSDictionary *brand; 
@property (nonatomic, retain) NSDictionary *brand; 

我想保持键值雪佛兰而我有的只是它的内容(字符串数组)。是唯一的出路,循环和建立新的词典内容有???:

NSArray *objects = [NSArray arrayWithObjects:@"Camaro", @"Corvette", nil]; 
NSDictionary *brand =[NSDictionary dictionaryWithObject:objects forKey:@"Chevrolet"]; 

更多信息:

NSDictionary *brand; 
@property (nonatomic, retain) NSDictionary *brand; 
:NSDictionary的的品牌 (在头文件)

声明

CONTENT PLIST作者:

<plist version="1.0"> 
<dict> 
<key>Chevrolet</key> 
<array> 
<string>Camaro</string> 
<string>Corvette</string> 
</array> 
<key>Ford</key> 
<array> 
<string>Mustang</string> 
<string>Kuga</string> 
<string>Ranger</string> 
</array> 
</dict> 
</plist> 

的理念是: 仅在表格视图中选择(例如,雪佛兰)

但有一个简单的句子(brand = [dict objectForKey:@“Chevrolet”];)没有引导。保存在新NSDICTIONARY 品牌阵列与关键价值。

目前我失去了钥匙,我只能复制阵列。

+3

为什么不坚持根plist的全部内容? – 2012-07-24 11:06:25

+0

你是怎么试图将旧的'NSDictionary'中的值复制到新的?代码在哪里? “Cars.plist”的内容是什么? – holex 2012-07-24 11:10:02

+0

我编辑了更多信息的问题。 – Markus 2012-07-24 19:41:53

回答

0

它看起来像你的brand对象是NSArray而不是NSDictionary,即使你声明它为NSDictionary,所以没有“密钥”。然而,dic字典似乎是你想要的:品牌关键与一系列模型的关联。正如其他人所说,很难确切地知道你在没有看到plist文件的情况下得到了什么。

+0

我编辑了更多信息的问题。 – Markus 2012-07-24 19:38:59