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

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

清单内容:

<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品牌中保留具有关键价值的阵列。

目前我丢失了密钥,只有我可以复制阵列。

4

1 回答 1

0

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

于 2012-07-24T11:17:19.807 回答