簡體   English   中英

是否可以在iOS框架中獲取位置?

[英]Is it possible to get location within iOS framework?

我迅速創建了一個框架。 但是我正在嘗試獲取位置值-框架內的經緯度。 下面的代碼可以正常編譯,但是不會填充位置值。 我已經將NSlocationWheninUseUSageDescription鍵添加到info.plist中。

有人可以告訴我,甚至有可能在框架內獲取位置值嗎? 如果是,那么應該在這里做什么?

注意:如果將此代碼添加到主應用程序的ViewController類中,則可以正常工作。 但是,如果將此代碼添加到框架並從那里調用,則用戶不會獲得授權消息。

import Foundation
import CoreLocation


public class FrameworkInit : NSObject, CLLocationManagerDelegate {


var locationManager = CLLocationManager()
var lat = ""
var long = ""
var locflag = false
var _appKey = ""

func fetchLocation()
{
    println("fetch loc called....")
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestWhenInUseAuthorization()
    locationManager.startUpdatingLocation()
}

public func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!)
{
    var locValue:CLLocationCoordinate2D = manager.location.coordinate
    lat = locValue.latitude.description
    long = locValue.longitude.description
    println("lat.....\(lat)   \nlong...... \(long)")
    self.locationManager.stopUpdatingLocation()
    if !locflag {

        SPDeviceRegister().saveDataOnDevice(_appKey, lat: lat, long: long)

        SPReceiver().thresholdValueSetter()

    }
    locflag = true
}

 public func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!)
{
    println("Error:" + error.localizedDescription)
    if !locflag {

        SPDeviceRegister().saveDataOnDevice(_appKey, lat: "0.0", long: "0.0")

        SPReceiver().thresholdValueSetter()
    }
    locflag = true
}


public init(appKey: String)
{
    super.init()
    _appKey = appKey
    self.fetchLocation()
}
}

終於找到了可行的解決方案。

盡管對於您的方案,實現可能有所不同,但是請看一下此示例。 感謝項目的所有者。

https://github.com/icanzilb/OneShotLocationManager

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM