Objective c 缺少字典键值
我试图从plist文件复制数组,但丢失了该数组的键值。这是我加载plist内容的方式:Objective c 缺少字典键值,objective-c,xcode,plist,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"]; 新词典
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品牌声明(在头文件中):
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品牌中保存具有键值的数组
目前,我丢失了密钥,只有我可以复制数组。看起来您的
品牌
对象是NSArray
,而不是NSDictionary
,即使您将其声明为NSDictionary
,因此没有“密钥”。然而,dic
字典似乎就是你想要的:一个品牌密钥与一系列型号的关联。正如其他人所说,如果不查看plist文件,就很难准确地知道您得到了什么。为什么不保留根plist的全部内容?您是如何尝试将旧的aNSDictionary
中的值复制到新字典中的?代码在哪里?Cars.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>