Référence ambiguë à un membre "joinWithSeparator' en swift
Je suis en utilisant Google ' reverseGeocodeCoordinate
" pour obtenir une adresse en fonction de la latitude et de la longitude.
J'obtiens l'erreur suivante dans la mise en œuvre
Référence ambiguë à un membre "joinWithSeparator'
Ci-dessous est ma mise en œuvre:
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)")
}
Je suis en train de créer un addressString
avec les éléments de la matrice de 'gmsAddress.lines
', mais à la fin avec un message d'erreur.
Mis en œuvre une partie de l'échantillon extrait de test 'joinWithSeparator
'
let sampleArray = ["1", "2", "3", "4", "5"]
let joinedString = sampleArray.joinWithSeparator("")
print("joinedString=\(joinedString)")
Il a réussi.
Ce que j'observe, c'est " sampleArray
'est un tableau d'éléments de type String
, mais" gmsAddress.lines
' est un tableau d'éléments de type 'AnyObject
", dans ' GMSAddress
de la bibliothèque:
/** An array of NSString containing formatted lines of the address. May be nil. */
public var lines: [AnyObject]! { get }
Alors, Quelles sont les voies possibles pour atteindre la ligne suivante sans boucle le tableau:
let addressString = gmsAddress.lines.joinWithSeparator("")
Vous devez vous connecter pour publier un commentaire.
Il est ambigu, parce que le tableau peut contenir
AnyObject
ce qui signifie que chaque objet dans le tableau pourrait être d'un type différent. Donc le compilateur ne peut pas savoir à l'avance si deux objets dans le tableau peut être rejoint.La raison de votre
sampleArray
œuvres, c'est qu'il a été implicitement déterminé à être un tableau de chaînes de caractères.Si vous savez pour un fait que chaque élément dans la
lines
tableau est une chaîne de caractères, vous pouvez forcer abattu à un tableau de chaînes de caractères:Bien qu'il soit probablement la peine d'être sûr à ce sujet et de vérifier d'abord.