相关疑难解决方法(0)

从Swift中的回调中返回对象

我想用其他逻辑将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的委托方法?提前致谢.

core-location ios swift

2
推荐指数
1
解决办法
1235
查看次数

标签 统计

core-location ×1

ios ×1

swift ×1