我在开发iOS应用程序时遇到问题,我想要实现的是从字符串数组创建单个字符串。该数组包含给定位置的地址,使用CLGeocoder
从反向地理编码获得,这是给出字符串数组的代码:
let userCoordinates = CLLocation(latitude: mapView.userLocation.location!.coordinate.latitude, longitude: mapView.userLocation.location!.coordinate.longitude)
CLGeocoder().reverseGeocodeLocation(userCoordinates, completionHandler: {
placemark, error in
let reverseGeocodedLocation = placemark?.first?.addressDictionary?["FormattedAddressLines"] as? [String]
}
在我的案例中, reverseGeocodedLocation
是:
["Apple Inc.", "Cupertino, CA 95014", "United States"]
结果字符串应该将数组中的字符串分开,并以多行格式显示它们:
Apple Inc.
Cupertino, CA 95014
United States
我尝试在网上搜索解决方案,我发现这个代码应该这样做,这可能是解决方案:
print("\n".join(reverseGeocodedLocation.map({$0})))
但是编译器说:
无法调用'加入'使用类型'([String]?)'
的参数列表
答案 0 :(得分:4)
if let reverseGeocodedLocation = reverseGeocodedLocation {
print(reverseGeocodedLocation.joinWithSeparator("\n"))
}
作为答案而不是评论。
Swift 3/4:
reverseGeocodedLocation.joined(separator: "\n")