Swift   发布时间:2022-04-29  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift:LocationManager在不同的类中大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个LOCATIOnManager类来处理所有的GPS数据.我需要多个视图控制器中的GPS数据.问题是函数调用但我没有得到坐标.我在状态栏中看到了GPS图标,但几秒后就消失了.

GPSTrackeRMANager.swift

    class GPSTrackingManager: NSObject,CLLOCATIOnManagerDelegate {

    var LOCATIOnManager: CLLOCATIOnManager!
    var seenError : Bool = false

    func startTracking() {

        LOCATIOnManager = CLLOCATIOnManager()
        LOCATIOnManager.delegate = self
        LOCATIOnManager.desiredAccuracy = kCLLOCATIOnAccuracyBest
        LOCATIOnManager.requestAlwaysAuthorization()
        LOCATIOnManager.startupdatingLOCATIOn() 
    }

    func LOCATIOnManager(manager: CLLOCATIOnManager!,didFailWithError error: NSError!) {
        LOCATIOnManager.stopupdatingLOCATIOn()
        if ((error) != nil) {
            if (seenError == falsE) {
                seenError = true
                print(error)
            }
        }
    }

    func LOCATIOnManager(manager:CLLOCATIOnManager,didupdateLOCATIOns LOCATIOns:[AnyObject]) {
        //println("LOCATIOns = \(LOCATIOnManager)")
        var latValue = LOCATIOnManager.LOCATIOn.coordinate.latitude
        var lonValue = LOCATIOnManager.LOCATIOn.coordinate.longitude

        println(latvalue)
        println(lonvalue)

    }
}

我如何在VC中的ViewDidLoad中调用它:

var tracking = GPSTrackingManager()
tracking.startTracking()

解决方法

您在viewDidLoad方法完成后声明它将立即消失的方式,因为它的范围是方法的本地范围.您需要跟踪视图控制器的属性,以便它可以保持:

class ViewController: UIViewController {
    var tracking = GPSTrackingManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        // ...
        tracking.startTracking()
    }
}

大佬总结

以上是大佬教程为你收集整理的Swift:LocationManager在不同的类中全部内容,希望文章能够帮你解决Swift:LocationManager在不同的类中所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。