Referencia ambigua al miembro ''joinWithSeparator'' en swift
nsarray ios9 (1)
Es ambiguo porque la matriz puede contener AnyObject
significa que cada objeto de la matriz podría ser de un tipo diferente. Por lo tanto, el compilador no puede saber de antemano si se pueden unir dos objetos de la matriz.
La razón por la que funciona sampleArray
es que se ha determinado implícitamente que es una matriz de cadenas.
Si sabe a ciencia cierta que cada elemento de la matriz de lines
es una cadena, puede forzarla a una matriz de cadenas:
let addressString = (gmsAddress.lines as! [String]).joinWithSeparator("")
Aunque probablemente valga la pena estar seguro sobre esto y verificar primero.
if let lines = gmsAddress.lines as? [String] {
let addressString = lines.joinWithSeparator(", ")
...
}
Estoy usando la " reverseGeocodeCoordinate
de reverseGeocodeCoordinate
de reverseGeocodeCoordinate
" de reverseGeocodeCoordinate
para obtener la dirección según la latitud y la longitud.
Estoy recibiendo el siguiente error en la implementación
Referencia ambigua al miembro ''joinWithSeparator''
A continuación se muestra mi implementación:
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)")
}
Estoy tratando de crear una addressString
con los elementos en la matriz '' gmsAddress.lines
'', pero termino con un mensaje de error.
Implementé algunos fragmentos de muestra para probar '' joinWithSeparator
''
let sampleArray = ["1", "2", "3", "4", "5"]
let joinedString = sampleArray.joinWithSeparator("")
print("joinedString=/(joinedString)")
Tuvo éxito
Lo que observo es que '' sampleArray
'' es una matriz de elementos de tipo String
, pero '' gmsAddress.lines
'' es una matriz de elementos de tipo '' AnyObject
'', que se encuentra en la biblioteca '' GMSAddress
'':
/** An array of NSString containing formatted lines of the address. May be nil. */
public var lines: [AnyObject]! { get }
Entonces, ¿Cuáles son las formas posibles de lograr la siguiente línea sin hacer un bucle en la matriz:
let addressString = gmsAddress.lines.joinWithSeparator("")