Làm cách nào để chuyển đổi một đối tượng thuộc loại (NSObject, AnyObject)
thành loại String
?'(NSObject, AnyObject)' không thể chuyển đổi thành 'Chuỗi'
Vào cuối dòng đầu tiên của phương pháp dưới đây, as String
gây ra lỗi biên dịch:
'(NSObject, AnyObject)' is not convertible to 'String'
Đúc street
để NSString
thay vì String
biên dịch, nhưng tôi đúc street
để String
vì tôi muốn so sánh nó với placemark.name
, có loại String!
, không phải là NSString
.
Tôi biết name
và street
là optionals, nhưng tôi giả định họ không nil
cho bây giờ bởi vì tất cả các nơi trở về từ MKLocalSearch
dường như có những cái tên không bằng không và đường phố.
func formatPlacemark(placemark: CLPlacemark) -> (String, String) {
let street = placemark.addressDictionary["Street"] as String
if placemark.name == street {
// Do something
}
}
Làm cách nào để bạn biết tôi có thể thực hiện 'dấu vị trí.name == street' thay vì 'street.isEqualToString (placemark.name)'? Tôi muốn chắc chắn rằng tôi đang kiểm tra chuỗi bình đẳng ('isEqualToString'), không phải là đối tượng nhận dạng (' == '). – ma11hew28
Swift tự động cầu nối giữa hai loại, và '==' là cách Swift kiểm tra sự bình đẳng chuỗi. Xem: https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/BuildingCocoaApps/WorkingWithCocoaDataTypes.html – vacawama
Dùng thử trong Sân chơi. Bạn sẽ thấy nó hoạt động như bạn muốn. – vacawama