私はLocationManager
の問題をswift 2.0で持っています。その私の場所のクラス:Swift 2.0 LocationManagerはゼロです
*
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
}
*
私はAppDelegate
で、このクラスのオブジェクトを作成します。
let location = Location()
と私のアプリがアクティブになったときの位置を開始します。
func applicationDidBecomeActive(application: UIApplication) {
location.locationManagerStart()
}
後で私のコードで私は場所にアクセスできるかどうかを確認する必要があります。
func haveAccessToLocation() -> Bool {
if (coordinate?.latitude) != nil {
return true
}else {
return false
}
}
マイcordinate?.latitude/longitude
がnilであると、私のlocationManager
があまりにもnilであると、私はなぜ
これはSimulatorで実行していますか? - 実際のデバイスでテストします。 – Fennec
あなたはUppateToLocationが呼び出されたかどうかを確認しましたか? –
初めてアプリを実行したときに位置を有効にするポップアップを表示していますか? –