1

我正在快速使用一些 API。我遇到了 Forecast.io API for weather,下载了一个 Objective-c 包装器,并在我的 xcode 项目中创建了一个桥接头。我遇到的唯一问题是我有一个不会执行的闭包(objective-c 块)。这是代码:

    var geocoder:CLGeocoder = CLGeocoder()
    geocoder.geocodeAddressString("1 Infinite Loop, Cupertino, CA", completionHandler: {objects, error in
        if (objects.count >= 0) {
            println("yes")
            curLocPlacemark = objects[0] as? CLPlacemark
            if(curLocPlacemark != nil) {
                curLocation = curLocPlacemark!.location
            }
        } else {
            println("no")
        }
    })

调试时,调试器到达 line geocoder.geocodeAddressString("1 Infinite Loop, Cupertino, CA", completionHandler: {objects, error in,然后跳过显示的其余行。这只是我找不到的愚蠢的语法错误吗?谢谢!

4

1 回答 1

2

闭包内的代码是异步执行的——它在地址字符串地理编码完成后由地理编码器打包并执行。(这就是闭包的含义——包装代码和上下文以供以后执行。)您在日志中看到正确的输出了吗?

于 2014-09-17T03:09:54.087 回答