Създадох рамка в 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()
}
}
CLLocationManager
разрешения (и наличност)? - person Matteo Piombo   schedule 06.05.2015