【发布时间】:2023-03-23 10:16:01
【问题描述】:
我正在使用 Google 的“reverseGeocodeCoordinate”根据纬度和经度获取地址。
我在实现中遇到以下错误
对成员“joinWithSeparator”的模糊引用
下面是我的实现:
let aGMSGeocoder: GMSGeocoder = GMSGeocoder()
aGMSGeocoder.reverseGeocodeCoordinate(CLLocationCoordinate2DMake(17.45134626, 78.39304448)) {
(let gmsReverseGeocodeResponse: GMSReverseGeocodeResponse!, let error: NSError!) -> Void in
let gmsAddress: GMSAddress = gmsReverseGeocodeResponse.firstResult()
print("lines=\(gmsAddress.lines)")
let addressString = gmsAddress.lines.joinWithSeparator("")
print("addressString=\(addressString)")
}
我正在尝试使用数组“gmsAddress.lines”中的元素创建一个addressString,但最终得到一条错误消息。
实现了一些示例 sn-p 来测试“joinWithSeparator”
let sampleArray = ["1", "2", "3", "4", "5"]
let joinedString = sampleArray.joinWithSeparator("")
print("joinedString=\(joinedString)")
成功了。
我观察到的是,'sampleArray' 是String 类型的元素数组,但'gmsAddress.lines' 是'AnyObject' 类型的元素数组,在'GMSAddress' 库中找到:
/** An array of NSString containing formatted lines of the address. May be nil. */
public var lines: [AnyObject]! { get }
那么,在不循环数组的情况下,有哪些可能的方法来实现以下行:
let addressString = gmsAddress.lines.joinWithSeparator("")
【问题讨论】:
标签: swift nsarray ios9 google-maps-sdk-ios