首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速地理位置纬度和经度分离并生成CLLocation2DMake

快速地理位置纬度和经度分离并生成CLLocation2DMake
EN

Stack Overflow用户
提问于 2016-06-28 09:52:06
回答 1查看 243关注 0票数 0
代码语言:javascript
复制
   func forwardGeocoding(address: String) {
    CLGeocoder().geocodeAddressString(address, completionHandler: { (placemarks, error) in
        if error != nil {
            print(error)
            return
        }
        if placemarks?.count > 0 {
            let placemark = placemarks?[0]
            let location = placemark?.location
            let coordinate = location?.coordinate
            print("\nlat: \(coordinate!.latitude), long: \(coordinate!.longitude)")
            if placemark?.areasOfInterest?.count > 0 {
                let areaOfInterest = placemark!.areasOfInterest![0]
                print(areaOfInterest)
            } else {
                print("No area of interest found.")
            }
        }
})


        var INITIAL_DESTINATION = forwardGeocoding(initialDestination)

        var DESIRED_DESTINATION = forwardGeocoding(desiredDestination)

        var location = CLLocationCoordinate2DMake(<#T##CLLocationDegrees#>, <#T##CLLocationDegrees#>)

你好,我正在尝试做一个地图应用程序,并与这一部分有问题。我想要做的是能够将INITIAL_DESTINATION的纬度和经度分开。我必须这样做才能创建一个CLLocationCoordinate2DMake。我一直在尝试做的就是使用INITIAL_DESTINATION.latitudeINITIAL_DESTINATION.longitude,但我仍然面临着同样的错误,那就是"Value of tuple type "()" has no member "latitude"。这也很奇怪,因为它没有给出INITIAL_DESTINATION.longitude的那个错误。

我们非常感谢您的帮助或建议,并感谢您的阅读和宝贵时间的回复。

EN

回答 1

Stack Overflow用户

发布于 2016-06-28 15:48:32

您的函数不会返回任何内容,也不会对异步完成处理程序中返回的值执行任何操作。您需要获取异步结果并以某种方式使用它。

尝试这样做:将打印放在函数的末尾,放在完成处理程序中,然后运行代码。您将看到该函数是在完成处理程序运行之前完成的,因为在远程网站通过网络返回答案之前,块内的代码不会运行。此时,Alamofire将结果传递给完成块中的代码。

您还需要注意,iOS中有多个队列,并且UI更改只能在主队列上完成。不过,完成块并不在主队列上运行,因此要使用从网络返回的信息,您需要使用dispatch_async函数来调用程序中的函数,并使其在主队列上执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38065862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档