ios - 是否可以在 iOS 框架内获取位置?

标签 ios swift frameworks core-location

我已经在 swift 中创建了一个框架。但我正在尝试获取位置值 - 框架内的纬度和经度。下面的代码编译正常,但位置值没有被填充。我已经将 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

关于ios - 是否可以在 iOS 框架内获取位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30068358/

相关文章:

ios - 解析 (iOS) : User cannot be deleted unless they have been authenticated via logIn or signUp

iphone - iOS 多个委托(delegate)

ios - 拍照后如何暂停?

swift - 如何启用/禁用 TextField SWIFT

ios - 滚动 UIScrollView 时不会更新 UI 元素

java - 用于访问本地文件系统的 Applet 框架

ios - 在 iOS 上,对于 MVVM 中的 DisposeBag,可以放在 ViewModel 中吗?

ios - 如何组织一个依赖于pod的框架项目?

php 框架,我什么时候以及为什么需要它们?

ios - 当应用程序处于后台时在 Swift 2.0 Xcode 7 中显示警报消息