Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 缺少字典键值_Objective C_Xcode_Plist - Fatal编程技术网

Objective c 缺少字典键值

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"]; 新词典

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

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的全部内容?您是如何尝试将旧的a
NSDictionary
中的值复制到新字典中的?代码在哪里?
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>