如何在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中获取州,国家/地区列表的主要内容,如果未能解决你的问题,请参考以下文章