Jas*_*n G 4 xcode clgeocoder swift
表明有一些变化
func geocodeAddressString(_ addressString: String!, completionHandler completionHandler: CLGeocodeCompletionHandler!)
Run Code Online (Sandbox Code Playgroud)
至:
func geocodeAddressString(_ addressString: String, completionHandler completionHandler: CLGeocodeCompletionHandler)
Run Code Online (Sandbox Code Playgroud)
我的代码是:
var geocoder = CLGeocoder()
geocoder.geocodeAddressString("\(event!.street), \(event!.city), \(event!.country)", completionHandler: {(placemarks: [AnyObject]!, error: NSError!) -> Void in
if let placemark = placemarks?[0] as? CLPlacemark {
self.event!.lat = placemark.location!.coordinate.latitude
self.event!.long = placemark.location!.coordinate.longitude
self.event!.getMiles(self.currentLocation!.location!.coordinate.latitude, clong: self.currentLocation!.location!.coordinate.longitude)
var mile = self.event!.miles != nil ? NSString(format: "%.1f miles", self.event!.miles!) : "Location services off"
self.milesButton.setTitle(mile as String, forState: .Normal)
}
})
Run Code Online (Sandbox Code Playgroud)
尝试:
var geocoder = CLGeocoder()
let address = "\(event!.street), \(event!.city), \(event!.country)"
geocoder.geocodeAddressString(address, completionHandler: {(placemarks: [CLPlacemark]) in
let placemark = placemarks[0]
self.event!.lat = placemark.location!.coordinate.latitude
self.event!.long = placemark.location!.coordinate.longitude
self.event!.getMiles(self.currentLocation!.location!.coordinate.latitude, clong: self.currentLocation!.location!.coordinate.longitude)
var mile = self.event!.miles != nil ? NSString(format: "%.1f miles", self.event!.miles!) : "Location services off"
self.milesButton.setTitle(mile as String, forState: .Normal)
})
Run Code Online (Sandbox Code Playgroud)
它只是说它不被允许.尝试了几种不同的组合.这是对xcode/swift的最新更新
提前致谢
Rob*_*Rob 10
在Swift 2中:
geocoder.geocodeAddressString(address, completionHandler: {(placemarks: [CLPlacemark]?, error: NSError?) -> Void in
})
Run Code Online (Sandbox Code Playgroud)
在Swift 3中,替换NSError?为Error?:
geocoder.geocodeAddressString(address, completionHandler: {(placemarks: [CLPlacemark]?, error: Error?) -> Void in
})
Run Code Online (Sandbox Code Playgroud)
或者,更简单,只需让它为您推断出正确的类型:
geocoder.geocodeAddressString(address) { placemarks, error in
}
Run Code Online (Sandbox Code Playgroud)
使用geocodeAddressString这种方式:
geocoder.geocodeAddressString(address, completionHandler: {(placemarks: [CLPlacemark]?, error: NSError?) -> Void in
})
Run Code Online (Sandbox Code Playgroud)
它会工作正常.
| 归档时间: |
|
| 查看次数: |
8814 次 |
| 最近记录: |