2012-06-19 64 views
0

我正在从JSON饲料下载关于国家,州和他们的城市的一些信息。我有我的最终数据结构的方式如下:桌面视图与国家/州/城市

一个NSArray其中每个元素包含一个NSDictionary。每个NSDictionary具有该国名称的key,以及与该州对应的NSDictionaryvalue。这些NSDictionary中的每一个都持有状态名称的key以及具有城市名称的列表的value

我想在表格视图的不同部分显示每个国家。要返回国家数量(又名部分),我只能做[countriesArray count]

但是,要返回每个国家的州和城市的数量,这对我目前的结构来说似乎是不可能的。我可以访问[countriesArray objectAtIndex:index],但在那之后,我怎样才能访问该字典的价值(关键是国家的名称)?

我应该重构我的数据结构吗?如果是这样,那么对这类数据进行排序的最好方法是什么?

+0

请告诉我你在你的应用程序中有一个数据库?如果您使用网络电话来驱动您的用户界面,我觉得您的应用会遇到比您想要的麻烦更多的问题。 –

回答

0

您可以使用下面的数据结构,这可能会有所帮助。

以NSDictionary作为对象的容器NSArray。 每个字典都有固定的键,例如:countryName和stateInfo。 这个键的值将是:string和NSDictionary。

每个stateInfo字典应该有固定的键:stateName,城市 这个键的值将是:string和NSarray的城市。

1

您可以使用可折叠的tableview

从这里就可以显示相关数据,您的要求处理好这个问题。

+0

可折叠t​​ableview参考此链接http://www.codeproject.com/Articles/240435/Reusable-collapsable-table-view-for-iOS – Senthilkumar

0

NSArray * countryKeys = [countriesArray allKeys]; //将返回一个包含所有键(国名)的数组。另外,你应该做[countriesArray valueForKey:[countryKeys objectAtIndex:index]];而不是[国家数组对象索引:索引]。