Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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
iOS:在哪里以及如何获取城市列表(未在本地数据库中预加载)?_Ios_Swift_Dictionary_Geocoding - Fatal编程技术网

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

我正在用Swift写iOS的代码。我也不知道如何获取城市列表来进行搜索。
我不想创建任何预加载的本地数据库。有没有办法从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并解析其结果。例如: