Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Iphone 国家/州/城市的表格视图_Iphone_Objective C_Uitableview_Nsarray_Nsdictionary - Fatal编程技术网

Iphone 国家/州/城市的表格视图

Iphone 国家/州/城市的表格视图,iphone,objective-c,uitableview,nsarray,nsdictionary,Iphone,Objective C,Uitableview,Nsarray,Nsdictionary,我正在从JSONfeed下载一些关于国家、州及其城市的信息。我的最终数据结构如下所示: 一个NSArray,其中每个元素都保存一个NSDictionary。每个NSDictionary都有一个国家名称的键,以及一个与各州相对应的NSDictionary值。每个NSDictionarys都拥有州名的键和城市名列表的值 我想在表视图的不同部分显示每个国家。要返回国家数(也称为节数),我只需执行[countriesArray count] 然而,要返回每个国家的州和城市数量,这在我目前的结构中似乎是不

我正在从
JSON
feed下载一些关于国家、州及其城市的信息。我的最终数据结构如下所示:

一个
NSArray
,其中每个元素都保存一个
NSDictionary
。每个
NSDictionary
都有一个国家名称的
键,以及一个与各州相对应的
NSDictionary
值。每个
NSDictionary
s都拥有州名的
键和城市名列表的

我想在表视图的不同部分显示每个国家。要返回国家数(也称为节数),我只需执行
[countriesArray count]

然而,要返回每个国家的州和城市数量,这在我目前的结构中似乎是不可能的。我可以访问
[countriesArray objectAtIndex:index]
,但在这之后,我如何访问该词典的值(键是国家的名称)


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

您可以使用可折叠的tableview来处理此问题


您可以根据需要显示相关数据。

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

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

每个stateInfo字典都应该有固定键,如:stateName、cities
此键的值将为:城市的字符串和NSarray。

NSarray*countryKeys=[countriesArray allKeys]//将返回所有密钥(国家名称)的数组


此外,您应该执行[countriesArray valueForKey:[countryKeys objectAtIndex:index];而不是执行[countriesArray objectAtIndex:index]

可折叠的tableview引用此链接请告诉我您的应用程序中有数据库?如果你使用网络呼叫来驱动你的用户界面,我感觉你的应用程序会遇到比你想要的更多的麻烦。