我想用其他逻辑将geocoder.geocdeAddressString包装在另一个方法中.
public func placemarkForSearchResult<T>(searchResult: T) -> CLPlacemark? {
if let searchResult = searchResult as? String {
let geocoder = CLGeocoder()
geocoder.geocodeAddressString(searchResult, completionHandler: {
(placemarks, error) -> Void in
// Check for returned placemarks
if let placemarks = placemarks where placemarks.count > 0 {
return placemarks[0] as! CLPlacemark // CLPlacemark is not convertible to void error message
}
return nil // Typd Void does not conform to protocol NilLiteralConvertible
})
}
}
Run Code Online (Sandbox Code Playgroud)
我在这个方法中有一些其他逻辑并不是真的相关,但我想知道如何处理这样的情况,我想返回一个CLPlacemark,但不能,因为地理编码器的completionHandler返回Void.我无法更改地理编码器回调的Void参数.那可能吗?或者我是否一直在调用使用地理编码器中找到的CLPlacemark的委托方法?提前致谢.