如何在ios中获取州,国家/地区列表

Posted

技术标签:

【中文标题】如何在ios中获取州,国家/地区列表【英文标题】:How to get the state,country list in ios 【发布时间】:2013-02-15 10:46:35 【问题描述】:

我在我的应用程序中使用 Expedia 创建酒店预订应用程序我有搜索选项来搜索州、国家/地区列表,即(印度泰米尔纳德邦)。有什么方法可以在我的 ios 应用程序中获取城市和州的全部数据![我有如下图所示的搜索选项]

【问题讨论】:

有什么办法可以解决这个问题 【参考方案1】:

您可能需要调用多个 API 才能实现此目的。您可以使用以下 API。

    http://api.drupal.org/api/drupal/includes%21locale.inc/function/country_get_list/7 http://api.shopify.com/country.html http://www.geonames.org/export/web-services.html

您可以使用此 API 并填写您的 UITableView。然后您可以使用本地搜索在UISearchBar 中进行搜索。

注意:如果您使用这些 API,请记住您的应用程序功能依赖于这些 API。如果他们不工作,您的应用程序将无法工作。如果他们的服务出现故障,您的应用程序将出现故障。

【讨论】:

【参考方案2】:

我终于找到了解决方案。 1)我使用了下面的 url 并以 json 格式获取特定文本的所有城市名称。 http://ws.geonames.org/searchJSON?name_startsWith=madurai

2)然后借助json解析器解析数据。我在下面包含我的代码

       NSURLRequest *req = [NSURLRequest requestWithURL:locatioURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
        NSURLResponse *response;
        NSError *errorReq = nil;
        NSData *data = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&errorReq];
//        NSString *udata = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//        NSString * newstr = [NSString stringWithFormat:@"%@",data];

        NSString *udata = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSData *temp = [udata dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
        NSString *dst = [[[NSString alloc] initWithData:temp encoding:NSASCIIStringEncoding] autorelease];

        NSDictionary * locationDictionary = [[NSDictionary alloc]initWithDictionary:[dst JSONValue]];



        NSMutableArray *  locallocationArray= [[NSMutableArray alloc] initWithArray:[locationDictionary objectForKey:@"geonames"]];

        NSLog(@"%@",locallocationArray);

        for (int i = 0; i<[locallocationArray count]; i++)
        
            NSString * locationStr = [NSString stringWithFormat:@"%@,%@,%@",[[locallocationArray objectAtIndex:i]objectForKey:@"name"],[[locallocationArray objectAtIndex:i]objectForKey:@"adminName1"],[[locallocationArray objectAtIndex:i]objectForKey:@"countryName"]];
[oneTimeLocationArray addObject:locationStr];


然后在 TableView 中加载数组。

3) 如果您需要在 Phonegap 应用程序中实现此功能,请参考以下链接http://jqueryui.com/autocomplete/#remote-jsonp

谢谢

【讨论】:

以上是关于如何在ios中获取州,国家/地区列表的主要内容,如果未能解决你的问题,请参考以下文章

国家/城市/州验证

如何在 mern 堆栈中获取注册表单的国家/地区列表?

如何在选择时使用 formArray 索引加载动态下拉数据

如何在iOS中获取用户的国家/地区呼叫代码?

如何在 iOS 中获取用户的国家/地区呼叫代码?

使用地名数据库获取城市所属的州和县?