Я создал структуру в быстром. Но я пытаюсь получить значения местоположения - lat и lon в рамках. Код ниже компилируется, но значения местоположения не заполняются. Я уже добавил ключ NSlocationWheninUseUSageDescription в info.plist.Возможно ли получить местоположение в рамках iOS?
Может кто-нибудь сказать мне, возможно ли даже получить значения местоположения в рамках? Если да, то что тут делать?
Примечание: этот код отлично работает, если он добавлен в класс 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()
}
}
возможно дубликат [Как я могу получить текущее местоположение пользователя в прошивке] (http://stackoverflow.com/questions/4152003/how-can-i-get-current-location-from- user-in-ios) –
Даже если вы создаете фреймворк, вам все равно нужно получить разрешение от пользователя, чтобы получить места. Создает ли ваша структура какой-либо метод для управления необходимыми полномочиями «CLLocationManager» (и доступности)? –
Хотя я новичок в разработке iOS, но этот код отлично работает, если он добавлен в ViewController основного приложения. locationManager.requestWhenInUseAuthorization() будет автоматически запрашивать авторизацию пользователя, используя значение для ключа NSLocationWhenInUseUsageDescription в файле info.plist. Но после добавления кода к пользователю Framework пользователь не получает сообщение авторизации. –