Come si converte un oggetto di tipo (NSObject, AnyObject)
nel tipo String
?'(NSObject, AnyObject)' non è convertibile in 'String'
Alla fine della prima riga del metodo seguito, as String
causa l'errore del compilatore:
'(NSObject, AnyObject)' is not convertible to 'String'
Casting street
a NSString
invece di String
compila, ma sto gettando street
a String
perché voglio confrontarlo con placemark.name
, che ha il tipo String!
, non NSString
.
so name
e street
sono optional, ma sto supponendo che non sono nil
per ora, perché tutti i luoghi tornato da MKLocalSearch
sembrano avere i nomi non-nil e strade.
func formatPlacemark(placemark: CLPlacemark) -> (String, String) {
let street = placemark.addressDictionary["Street"] as String
if placemark.name == street {
// Do something
}
}
Come sai che posso fare 'segnaposto.nome == street' invece di 'street.isEqualToString (placemark.name)'? Voglio assicurarmi di controllare l'uguaglianza delle stringhe ('isEqualToString'), non l'identità dell'oggetto (' == '). – ma11hew28
Swift collega automaticamente i due tipi, e '==' è il modo rapido di testare l'uguaglianza delle stringhe. Vedi: https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/BuildingCocoaApps/WorkingWithCocoaDataTypes.html – vacawama
Provalo in un parco giochi. Vedrai che funziona come vorresti. – vacawama