iOS:在哪里以及如何获取城市列表(未在本地数据库中预加载)?
我正在用Swift写iOS的代码。我也不知道如何获取城市列表来进行搜索。iOS:在哪里以及如何获取城市列表(未在本地数据库中预加载)?,ios,swift,dictionary,geocoding,Ios,Swift,Dictionary,Geocoding,我正在用Swift写iOS的代码。我也不知道如何获取城市列表来进行搜索。 我不想创建任何预加载的本地数据库。有没有办法从iOS获取此列表,或者我应该使用一些第三方API?你能帮帮我吗。谢谢 如果您决定使用谷歌API: var urlString = "https://maps.googleapis.com/maps/api/place/autocomplete/json?input=\(searchString)&sensor=true&types=(cities)&am
我不想创建任何预加载的本地数据库。有没有办法从iOS获取此列表,或者我应该使用一些第三方API?你能帮帮我吗。谢谢 如果您决定使用谷歌API:
var urlString = "https://maps.googleapis.com/maps/api/place/autocomplete/json?input=\(searchString)&sensor=true&types=(cities)&key=\(GOOGLE_API_KEY)"
let url:NSURL! = NSURL(string: urlString)
if url != nil {
let request = NSURLRequest(URL: url)
var err:NSError?
var citySearchResults = [String]()
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: { (response:NSURLResponse!, data:NSData!, error:NSError!) -> Void in
if error == nil {
if var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error:&err) as? NSDictionary {
self.citySearchResults.removeAll(keepCapacity: false)
for prediction in json["predictions"] as! Array<NSDictionary> {
if let addressComponents:Array<String>! = (prediction["description"] as! NSString).componentsSeparatedByString(",") as? Array<String> {
if addressComponents!.count > 2 {
citySearchResults.append("\(addressComponents![0]),\(addressComponents![1])")
} else {
citySearchResults.append(prediction["description"] as! String)
}
} else {
citySearchResults.append(prediction["description"] as! String)
}
}
self.tableView.reloadData()
}
}
})
}
var urlString=”https://maps.googleapis.com/maps/api/place/autocomplete/json?input=\(searchString)&sensor=true&types=(cities)&key=\(GOOGLE\u API\u key)
让url:NSURL!=NSURL(字符串:urlString)
如果url!=零{
let request=NSURLRequest(URL:URL)
变量错误:n错误?
var citySearchResults=[String]()
NSURLConnection.sendAsynchronousRequest(请求,队列:NSOperationQueue.mainQueue(),completionHandler:{(响应:NSURLResponse!,数据:NSData!,错误:NSError!)->中无效
如果错误==nil{
如果var json=NSJSONSerialization.JSONObjectWithData(数据,选项:NSJSONReadingOptions.MutableContainers,错误:&err)为?NSDictionary{
self.citySearchResults.removeAll(keepCapacity:false)
用于json[“预测”]作为!数组的预测{
如果让addressComponents:Array!=(预测[“描述”]为!NSString)。ComponentSeparatedByString(“,”)为?数组{
如果addressComponents!.count>2{
citySearchResults.append(\(addressComponents![0]),\(addressComponents![1]))
}否则{
citySearchResults.append(预测[“描述”]作为!字符串)
}
}否则{
citySearchResults.append(预测[“描述”]作为!字符串)
}
}
self.tableView.reloadData()
}
}
})
}
通过谷歌搜索,您会发现您必须使用internet上的外部API并解析其结果。例如: