Swift CLLocationManager(didUpdateLocations)被频繁调用

帕斯卡

谁能解释,为什么委托方法'CLLocationManager(didUpdateLocations)'被调用了4次,尽管我立即停止了更新?我只需要一次当前位置即可:)

import UIKit
import MapKit

class ContactView: UIViewController, CLLocationManagerDelegate {

    let clLocationManager = CLLocationManager()

    var latitude: AnyObject = 0.000000
    var longitude: AnyObject = 0.000000

    override func viewDidLoad() {
        super.viewDidLoad()
        self.nameTextField.delegate = self
        clLocationManager.delegate = self
        clLocationManager.desiredAccuracy = kCLLocationAccuracyBest
        clLocationManager.requestWhenInUseAuthorization()
        clLocationManager.startUpdatingLocation()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        CLGeocoder().reverseGeocodeLocation(manager.location!, completionHandler: {
            (placemarks, error) -> Void in
            self.clLocationManager.stopUpdatingLocation()
            if placemarks!.count > 0 {
                self.latitude = (manager.location?.coordinate.latitude)!
                self.longitude = (manager.location?.coordinate.longitude)!
                print(self.latitude)
                print(self.longitude)
            } else {
                print("Error")
            }
        })
    }
}

谢谢!

罗伊84

尝试将stopUpdatingLocation从reverseGeocodeLocation移到外部

 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    manager.stopUpdatingLocation()
    CLGeocoder().reverseGeocodeLocation(manager.location!, completionHandler: {
                (placemarks, error) -> Void in
                if placemarks!.count > 0 {
                    self.latitude = (manager.location?.coordinate.latitude)!
                    self.longitude = (manager.location?.coordinate.longitude)!
                    print(self.latitude)
                    print(self.longitude)
                } else {
                    print("Error")
                }
            })
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CLLocationManager不调用didUpdateLocations

来自分类Dev

CLLocationManager didUpdateLocations没有被调用

来自分类Dev

CLLocationManager requestLocation不调用didUpdateLocations

来自分类Dev

使用 swift 3 或 4 在 CLLocationManager 中不使用委托 didUpdateLocations 获取当前位置?

来自分类Dev

EXC_BAD_INSTRUCTION对于位置管理器,Swift崩溃(管理器:CLLocationManager,didUpdateLocations位置:[CLLocation])

来自分类Dev

CLLocationManager startUpdatingLocation没有调用locationManager:didUpdateLocations:或locationManager:didFailWithError:

来自分类Dev

CLLocationManager didUpdateLocations或didUpdateToLocation

来自分类Dev

Location class using CLLocationManager in swift

来自分类Dev

implement didUpdateLocations delegate method of CLLocationManager in ios

来自分类Dev

在iOS中实现CLLocationManager的didUpdateLocations委托方法

来自分类Dev

在iOS中实现CLLocationManager的didUpdateLocations委托方法

来自分类Dev

Swift:如何从Swift调用CCKeyDerivationPBKDF

来自分类Dev

didUpdateLocations没有被调用

来自分类Dev

didUpdateLocations从未调用

来自分类Dev

Swift-CLLocationManager不要求用户许可

来自分类Dev

解析和Swift-PFGeoPoint与CLLocationManager吗?

来自分类Dev

Swift-CLLocationManager不要求用户许可

来自分类Dev

在 Swift 中使用 CLLocationManager 的正确代码设计

来自分类Dev

从obj c调用swift

来自分类Dev

从C调用Swift

来自分类Dev

调用方法的Swift枚举

来自分类Dev

如何从Swift调用C?

来自分类Dev

在Swift中调用CGPatternCreate

来自分类Dev

Swift的deinit不被调用

来自分类Dev

从Swift调用C ++函数

来自分类Dev

在Swift中调用Gnuplot

来自分类Dev

从JavaScript调用Swift

来自分类Dev

在Swift中调用CFDictionaryContainsValue()

来自分类Dev

从Swift代码调用resolveInstanceMethod

Related 相关文章

  1. 1

    CLLocationManager不调用didUpdateLocations

  2. 2

    CLLocationManager didUpdateLocations没有被调用

  3. 3

    CLLocationManager requestLocation不调用didUpdateLocations

  4. 4

    使用 swift 3 或 4 在 CLLocationManager 中不使用委托 didUpdateLocations 获取当前位置?

  5. 5

    EXC_BAD_INSTRUCTION对于位置管理器,Swift崩溃(管理器:CLLocationManager,didUpdateLocations位置:[CLLocation])

  6. 6

    CLLocationManager startUpdatingLocation没有调用locationManager:didUpdateLocations:或locationManager:didFailWithError:

  7. 7

    CLLocationManager didUpdateLocations或didUpdateToLocation

  8. 8

    Location class using CLLocationManager in swift

  9. 9

    implement didUpdateLocations delegate method of CLLocationManager in ios

  10. 10

    在iOS中实现CLLocationManager的didUpdateLocations委托方法

  11. 11

    在iOS中实现CLLocationManager的didUpdateLocations委托方法

  12. 12

    Swift:如何从Swift调用CCKeyDerivationPBKDF

  13. 13

    didUpdateLocations没有被调用

  14. 14

    didUpdateLocations从未调用

  15. 15

    Swift-CLLocationManager不要求用户许可

  16. 16

    解析和Swift-PFGeoPoint与CLLocationManager吗?

  17. 17

    Swift-CLLocationManager不要求用户许可

  18. 18

    在 Swift 中使用 CLLocationManager 的正确代码设计

  19. 19

    从obj c调用swift

  20. 20

    从C调用Swift

  21. 21

    调用方法的Swift枚举

  22. 22

    如何从Swift调用C?

  23. 23

    在Swift中调用CGPatternCreate

  24. 24

    Swift的deinit不被调用

  25. 25

    从Swift调用C ++函数

  26. 26

    在Swift中调用Gnuplot

  27. 27

    从JavaScript调用Swift

  28. 28

    在Swift中调用CFDictionaryContainsValue()

  29. 29

    从Swift代码调用resolveInstanceMethod

热门标签

归档