我从以下代码中的iOS反向地理编码中获取字符串变量中的地址。
CLGeocoder().reverseGeocodeLocation(imageLocation, completionHandler:
{(placemarks, error) in
dispatch_async(dispatch_get_main_queue(), {
if (error != nil) {println("reverse geodcode fail: \(error.localizedDescription)")
textField.placeholder = "Address not found."
}
else
{
if placemarks.count > 0
{
var placemark:CLPlacemark = placemarks[0] as! CLPlacemark
var locationAddress:NSArray = placemark.addressDictionary["FormattedAddressLines"] as! NSArray
var tmpAddress = locationAddress.componentsJoinedByString("\n")
textField.text = tmpAddress as String
}
}
})
})
tmpAddress变量具有地址 - “2362-2658 W 12th St \ nCity,State 20301 \ nCountry Name”
我需要在tmpAddress变量中将2362-2658更改为2362 + 2658但我无法通过
执行此操作tmpAddress = tmpAddress.stringByReplacingOccurrencesOfString("-", withString: "+")
或
tmpAddress = tmpAddress.stringByReplacingOccurrencesOfString("\u{2212}", withString: " ")
请有人建议为什么上面的stringByReplacingOccurrencesOfString无法正常工作,如何实现。
答案 0 :(得分:3)
tmpAddress = tmpAddress.stringByReplacingOccurrencesOfString("-", withString: "+")
这取代了' - '用' +'
第一个参数是搜索字符串,第二个参数是替换字符串。
答案 1 :(得分:0)
尝试这样的事情:
var str = "2362-2658 W 12th St\nCity, State 20301\nCountry Name"
var start = str.startIndex
var end = advance(start, str.characters.count)
var modStr = str .stringByReplacingOccurrencesOfString("-", withString: "+", options:.CaseInsensitiveSearch, range: Range<String.Index>(start: start, end: end))
或简化:
var modStr = str .stringByReplacingOccurrencesOfString("-", withString: "+")
您的问题是您正在用“ - ”替换空格“”。原始代码中没有带“+”的“ - ”。