我正在使用以下代码搜索地点:
let correctedAddress:String! = self.searchResults[(indexPath as NSIndexPath).row].addingPercentEncoding(withAllowedCharacters: CharacterSet.symbols)
let url = URL(string: "https://maps.googleapis.com/maps/api/geocode/json?address=\(correctedAddress)&sensor=false")
self.searchResults [(indexPath as NSIndexPath).row]返回如下字符串:“圣保罗 - 巴西圣保罗州”
作为URL参数的字符串是这样的(在编码之后):
https://maps.googleapis.com/maps/api/geocode/json?address=Optional(\%22State%20of%20S%C3%A3o%20Paulo%2C%20Brazil\%22)&sensor=false
如果我在网络浏览器中搜索此网址,则会显示JSON。所以我假设它是一个有效的URL,但URL(string:..)方法总是返回 nil
我可能需要更改编码,我尝试使用CharacterSet.urlPathAllowed但总是返回nil。
我应该使用哪种编码?还是有别的错呢?
答案 0 :(得分:4)
尝试删除网址
中的Optional(...)字符串https://maps.googleapis.com/maps/api/geocode/json?address= \%22State%20of%20S%C3%A 3 O%20Paulo%2C%20Brazil \%22安培;传感器=假
我认为这就是网址返回nil
的原因。
答案 1 :(得分:0)
这对我有用:
“https://maps.googleapis.com/maps/api/geocode/json?address=”+ correctAddress +“& sensor = false”