How can you stop getting the user location when using CLLocationManager and mapbox?
I have a application that does the following:
1) Gets the users current location with the CLLocationManager and then calls the command ".stopUpdatingLocation()" which stops getting the user location.
2) Creates a map with mapbox
As soon as the application has both, it does NOT stop getting the user location.
I tested the application in the each separate scenarios (option 1 above alone and option 2 alone) and it successfully stop getting the user location but when the application has both implemented it does NOT stop getting the user location.
viewController.swift:
import UIKit
import MapboxGL
import CoreLocation
class ViewController: UIViewController, MGLMapViewDelegate , CLLocationManagerDelegate {
    //MARK: - Properties
    var manager: CLLocationManager?
    private var currentLocation: CLPlacemark?
    private var currLocLatitude:CLLocationDegrees?
    private var currLocLongitude:CLLocationDegrees?
    private var currLocTitle:String?
    private var currLocSubtitle:String?
    private var MapBoxAccessToken = "AccessToken.GoesHere"
    //MARK: - Lifecycle
    override func viewDidLoad() {
        super.viewDidLoad()
        manager = CLLocationManager()
        manager?.delegate = self
        manager?.desiredAccuracy = kCLLocationAccuracyBest
        manager?.requestWhenInUseAuthorization()
        manager?.startUpdatingLocation()
    }
    //MARK: - Helper        
    /* gather location information */
    func getLocationInfo(placemark: CLPlacemark) {
        currentLocation  =  placemark //will delete later - redudant
        currLocLatitude  =  placemark.location.coordinate.latitude
        currLocLongitude =  placemark.location.coordinate.longitude
        currLocTitle     =  placemark.areasOfInterest[0] as? String
        currLocSubtitle  =  placemark.locality
        //DEBUGGING
        print(placemark.location.coordinate.latitude)
        print(placemark.location.coordinate.longitude)
        print(placemark.areasOfInterest[0])
        print(placemark.locality)
    }
    //MARK: - CLLocationManagerDelegate
    func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
        manager.stopUpdatingLocation()
        let location = locations[0] as? CLLocation
        let geoCoder = CLGeocoder()
        geoCoder.reverseGeocodeLocation(manager.location, completionHandler: {(placemarks, error) -> Void in
            if (error != nil) {
                println("ERROR:" + error.localizedDescription)
                return
            }
            if placemarks.count > 0 {
                var currLocation = placemarks[0] as! CLPlacemark
                self.getLocationInfo(currLocation)
                self.createMapBoxMap()
            } else {
                print("Error with data")
            }
        })
    }
    func locationManager( manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
        print(" Authorization status changed to \(status.rawValue)")
    }
    func locationManager(manager: CLLocationManager!, didFailWithError error: NSError) {
        print("Error:" + error.localizedDescription)
    }
    //MARK: - MapBox Methods
    private func createMapBoxMap(){
        //type of map style
        let mapView = MGLMapView(frame: view.bounds, accessToken: MapBoxAccessToken)
        //dark map style
        //  let mapView = MGLMapView(frame: view.bounds, accessToken: "pk.eyJ1IjoibHVvYW5kcmUyOSIsImEiOiI4YzAyOGMwOTAwMmQ4M2U5MTA0YjliMjgxM2RiYzk0NSJ9.isuNZriXdmrh-n9flwTY9g",styleURL: NSURL(string: "asset://styles/dark-v7.json"))
        mapView.autoresizingMask = .FlexibleWidth | .FlexibleHeight
        //setting the map's center coordinate
        mapView.setCenterCoordinate(CLLocationCoordinate2D(latitude: currLocLatitude!, longitude: currLocLongitude!),
            zoomLevel: 25, animated: false)
        view.addSubview(mapView)
        /*define the marker and its coordinates, title, and subtitle:*/
        mapView.delegate = self  // Set the delegate property of our map view to self after instantiating it.
        // Declare the marker `ellipse` and set its coordinates, title, and subtitle
        let ellipse = MyAnnotation(location: CLLocationCoordinate2D(latitude: currLocLatitude!, longitude: currLocLongitude!),
            title: currLocTitle!, subtitle: currLocSubtitle!)
        mapView.addAnnotation(ellipse) // Add marker `ellipse` to the map
    }
    //MARK: - MGLMapViewDelegate
    /* defining the marker from MyAnnotation.swift */
    func mapView(mapView: MGLMapView!, symbolNameForAnnotation annotation: MGLAnnotation!) -> String! {
        return "secondary_marker"
    }
    /* Tapping the marker */
    func mapView(mapView: MGLMapView!, annotationCanShowCallout annotation: MGLAnnotation!) -> Bool {
        return true
    }
}
AppDelegate.swift: import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }
}
MyAnnotation.swift:
import Foundation
import MapboxGL
class MyAnnotation: NSObject, MGLAnnotation {
    var coordinate: CLLocationCoordinate2D
    var title: String!
    var subtitle: String!
    init(location coordinate: CLLocationCoordinate2D, title: String, subtitle: String) {
        self.coordinate = coordinate
        self.title = title
        self.subtitle = subtitle
    }
}
				
                        
You are calling the
managerreturned in thefunction, try callself.manager.stopUpdatingLocation()