【发布时间】:2015-09-12 21:37:07
【问题描述】:
我想用其他逻辑将geocoder.geocodeAddressString 包装在另一个方法中。
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
})
}
}
我在此方法中还有一些其他逻辑并不真正相关,但我想知道如何处理这样的情况,我想返回 CLPlacemark,但不能,因为地理编码器的 completionHandler 返回 Void。我无法更改地理编码器回调的 Void 参数。
这可能吗?还是我坚持调用使用从地理编码器中找到的 CLPlacemark 的委托方法?
【问题讨论】:
标签: ios swift core-location