2012-02-27 88 views
0

我有一个PLIST,里面包含3个Dictionarys。NSMutableDictionary Plist读几个

http://dl.dropbox.com/u/9358444/auto1.plist

我尝试这个加载到一个字典:

NSMutableDictionary *cars = [[NSMutableDictionary alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://dl.dropbox.com/u/9358444/auto1.plist"]]; 

而且我把这些变成一个NSMutableArray

[auto1 addobject:cars]; 

但我不能读出的信息。当我在tableview中点击这行时崩溃。

它这样工作,但我只读出项目0.我想读出所有其他人。

NSMutableDictionary *cars = [[[NSMutableDictionary alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://dl.dropbox.com/u/9358444/auto1.plist"]] objectForKey:@"Item 0"]; 

我必须创建为每个项目一个新的NSMutableDictionary,然后把它添加到NSMutableArray中AUTO1?或者有没有办法将Plist中的所有项目读入字典和数组?

回答

0

您必须从字典中读出所有键/值,并将其逐个添加到您的数组中。

要遍历字典中的所有键,使用

[NSDictionary allkeys] 

返回键在你的字典的数组。然后,您可以迭代它以获取字典中的所有值。

如果你想只得到值,使用

[NSDictionary allValues] 

返回值在你的字典的数组。

你也可以考虑把你的数据的plist这样

<key>auto1</key> 
<array> 
    <dict> 
     ... 
    </dict> 
    <dict> 
     ... 
    </dict> 
</array> 

然后你就可以读取使用

auto1 = [dict objectForKey:@"auto1"] 
+0

由于数组对象。建议建立一个新的plist。它效果很好。 – halloway4b 2012-02-27 10:39:31