二つのことを確認します -
1)あなたのViewControllerがCLLocationManagerDelegate
から継承し、viewDidLoad
2で自己へのdelegate
セットがあります)あなたのinfo.plist
が追加さこれらのキーを持っている: -
NSLocationAlwaysUsageDescription ---私は場所
がNSLocationWhenInUseUsageDescription ---私は場所
01を必要とする必要があります
プライバシー - 場所使用法の説明---私は場所を必要とする
class MapViewController: UIViewController , CLLocationManagerDelegate...{
...
..
let locationManager = CLLocationManager()
func viewDidLoad(){
super.viewDidLoad()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.distanceFilter = kCLDistanceFilterNone
locationManager.requestWhenInUseAuthorization()
locationManager.startMonitoringSignificantLocationChanges()
locationManager.startUpdatingLocation()
}
//Call these functions for updating the getting the values of current location
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .AuthorizedWhenInUse {
print("authorised call came . . . . ")
mapView.myLocationEnabled = true
}
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let location = locations.first {
print("target position : = \(location.coordinate)")
print(locationManager.location!.coordinate.latitude)
mapView.camera = GMSCameraPosition(target: location.coordinate, zoom: 15, bearing: 0, viewingAngle: 0)
locationManager.stopUpdatingLocation()
self.FIRDatabase.database().reference().child("Location").child(FIRAuth.auth()!.currentUser!.uid).setValue(["Latitude": locationManager.location!.coordinate.latitude, "Longitude": locationManager.location!.coordinate.longitude])
}
}
}
あなたはクラッシュのどのような種類を得るのですか? コードの最初の3行で割り当ての右側のどこかにnilがありますか?ラップ解除演算子があり、ラップ解除された値がゼロであれば実行時にクラッシュする可能性があります。 –
コア位置デリゲートメソッドが呼び出されていますか? – Dravidian
@Dravidianうん、彼らは呼ばれている。しかし、私のアプリケーションがクラッシュし、let変数latを作成するとすぐに停止することがわかります。 –