Ich habe ein Problem mit LocationManager
in Swift 2.0. Seine meine Lage Klasse:Swift 2.0 LocationManager ist null
*
import Foundation
import CoreLocation
class Location : NSObject, CLLocationManagerDelegate {
var locationManager: CLLocationManager?
var coordinate: CLLocationCoordinate2D?
func locationManagerStart() {
if locationManager == nil {
locationManager = CLLocationManager()
locationManager?.delegate = self;
locationManager?.desiredAccuracy = kCLLocationAccuracyBest
locationManager?.requestWhenInUseAuthorization()
}
locationManager?.startUpdatingLocation()
}
func locationManagerStop() {
locationManager?.stopUpdatingLocation()
}
//MARK: CLLocationManagerDelegate
func locationManager(manager: CLLocationManager, didUpdateToLocation newLocation: CLLocation, fromLocation oldLocation: CLLocation) {
coordinate = newLocation.coordinate
}
*
Ich schaffe Objekt in dieser Klasse in AppDelegate
:
let location = Location()
und Stelle beginnen, wenn meine app wurde aktiv:
func applicationDidBecomeActive(application: UIApplication) {
location.locationManagerStart()
}
Später in meinem Code muss ich überprüfen, ob ich Zugang zum Standort habe. Ich bin suer ich habe, weil ich Standort auf in iPhone und ich nahm meine Position zu verwenden:
func haveAccessToLocation() -> Bool {
if (coordinate?.latitude) != nil {
return true
}else {
return false
}
}
Mein cordinate?.latitude/longitude
ist null und meine locationManager
ist gleich Null zu und ich weiß nicht, warum
Sie führen dies auf Simulator? - Testen Sie es auf einem echten Gerät. – Fennec
haben Sie didUpdateToLocation überprüft, um angerufen zu werden oder nicht –
zeigt es Popup an, um den Standort zu aktivieren, wenn Sie Ihre App zum ersten Mal ausführen? –