1

我的申请是世界指南。有 4tableview和 4 mapview

  1. 大陆
  2. 国家
  3. 城市
  4. 地方

我已经NSMutableArray为上述每个项目分配了它们并在视图中分配了它们。当从 Continent 表中选择 Asia 时,仅应从国家/地区数组中显示亚洲国家/地区。如果选择国家/地区,则只有相应国家/地区的城市应从城市阵列中的城市表视图中显示,如地方副。它就像一棵树。使用数组太长了。如果存在使这项任务变得容易的另一种方法,请指导我。

4

3 回答 3

1

我认为更好的实施方式应该是:

  • 仅用于NSMutableArray存储顶级对象。
  • 用于NSMutableDictionary存储中低级对象。
  • 将 存储NSMutableDictionary在您NSMutableArray的顶级对象的每个索引中。
  • 将键作为大陆名称放在顶部NSMutableDictionary,将值作为国家名称,并按照相同的方式进行下一级。

在这种情况下,您只需要维护一个NSMutableArray即可工作。无需处理 4-5 个不同的数组。

希望对你有效。

于 2012-10-26T07:23:37.210 回答
0

以拥有所有四个对象的数据的方式处理数据或对数据进行分类非常复杂,因为没有键值对可以用来识别哪个国家属于哪个大陆以及哪个城市属于哪个国家等等在。

因此,您需要做的是,使用 Web 服务来获取分类数据。

这是 Web 服务的链接,您可以通过它简单地点击 URL 并捕获 XML 作为响应。

网址:http ://ws.geonames.org/countryInfo ?

上面的 URL 为您提供 XML 作为响应。像这样 :

<geonames>
<country>
<countryCode>AD</countryCode>
<countryName>Andorra</countryName>
<isoNumeric>020</isoNumeric>
<isoAlpha3>AND</isoAlpha3>
<fipsCode>AN</fipsCode>
<continent>EU</continent>
<continentName>Europe</continentName>
<capital>Andorra la Vella</capital>
<areaInSqKm>468.0</areaInSqKm>
<population>84000</population>
<currencyCode>EUR</currencyCode>
<languages>ca</languages>
<geonameId>3041565</geonameId>
<west>1.4071867141112762</west>
<north>42.65604389629997</north>
<east>1.7865427778319827</east>
<south>42.42849259876837</south>
</country>
.
.
.
and so on...

或者如果你想要 JSON 格式。采取以下网址:

URL api.geonames.org/countryInfoJSON?username=demo&formatted=true

所以现在你离你的解决方案只有几步之遥。

现在根据您的要求进行 XML 解析和过滤数据。

或者如果您想了解有关此 Web 服务的详细信息

只需访问: http: //geonames.r-forge.r-project.org/

希望对你有效。

于 2012-10-26T13:15:46.067 回答
-1

我想你有关于大陆、国家、城市和地点的所有数据。在这种情况下,连接所有 4 个数组的方式完全取决于您在 TableViews 上显示的数据格式。

无论是字符串数组还是每个项目的字典数组,还是JSONXML。请告诉我数据格式。之后我会尽力而为。

于 2012-10-26T08:23:39.870 回答