My app takes the users location, gets the co-ordinates , and provides a distance to or from their destination or origin. All these possible destinations are shown in a table view, so I’m getting the users co-ordinates at the same time as populating the table. The only thing is, the alert view that asks for the users location appears then disappears so quickly it’s impossible to click it!
Is there any way to manually present this alert when the app first loads? I tried getting the users location when the app loads up to try and force the alert to show, but that didn’t work.
While difficult to track down, the solution for this is quite simple.
Through much trial and error I found out that while the location access dialog pops up when you try to access any location services in the app for the first time, the dialog disappears on its own (without any user interaction) if the
CLLocationManagerobject is released before the user responds to the dialog.I was creating a
CLLocationManagerinstance in myviewDidLoadmethod. Since this was a local instance to the method, the instance was released by ARC after the method completed executing. As soon as the instance was released, the dialog disappeared. The solution was rather simple. Change theCLLocationManagerinstance from being a method-level variable to be a class-level instance variable. Now theCLLocationManagerinstance is only released once the class is unloaded.