字典键值缺失

时间:2012-07-24 10:55:01

标签: objective-c xcode plist

我试图从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声明品牌(在标题文件中):

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

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>

想法: 阅读表格视图仅选择阵列(例如,CHEVROLET)

但是简单的句子(品牌= [dict objectForKey:@“雪佛兰”];)没有LOOPS。保留新的品牌具有关键价值的阵列。

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

1 个答案:

答案 0 :(得分:0)

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