title: What's the proper way to use startMonitoringSignificantLocationChanges in swift 4?
body: <p>I try to make a running app, and I want to use the method <code>startMonitoringSignificantLocationChanges</code>, but I'm missing something because is not firing the <code>didUpdateLocations</code> that the documentation says it should.</p>
  
  <p>I have successfully used the startUpdatingLocation method of the <code>CLLocationManager</code> class and I can totally can use it for my interests, but I'd like to understand why my implementation doesn't work. </p>
  
  <p>So, I have this code:</p>
  
  <pre><code>let locationManager = CLLocationManager()
  func determineMyCurrentLocation() {
  
      locationManager.delegate = self
      locationManager.desiredAccuracy = kCLLocationAccuracyBest
      locationManager.requestAlwaysAuthorization()
      locationManager.allowsBackgroundLocationUpdates = true
  
      print("authorization Status: \(CLLocationManager.authorizationStatus().rawValue)")
  
      if CLLocationManager.locationServicesEnabled() {
          locationManager.startUpdatingLocation() //(1)
          //(2)locationManager.startMonitoringSignificantLocationChanges()
          locationManager.distanceFilter = 20
          //locationManager.start
          //locationManager.startUpdatingHeading)(
      }
  }
  
  func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { print("yaaay!") }
  </code></pre>
  
  <p>If you comment (1) and uncomment 2 the func locationManager...etc is never fired.</p>
  
  <p>Also, I have my info.plist with the proper keys set, "Privacy - Location When In Use Usage Description" and "Privacy - Location Always and When In Use Usage Description").</p>
  
  <p>Any idea?</p>
  
  <p>Thanks in advance.</p>
  
  <p>EDITED: My question was imprecise. I put the locationManager property as a class member and I completed the properties in my info.plist</p>