Q:

CLLocationManager does not call back method in delegate

CLLocationManager does not call back method: 
locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status;

after user's permission. 
I'm allocating CLLocationManager instance in singleton class (sort of manager), assigning delegate to self, all is looking fine, but is not working. 
Also I have many multithreading logic in my app, and I think, the problem is a deadlock or some other problem related to multithreading. 
How can I reveal what is the problem. 
P.S. I have also tried to call 
startMonitoringSignificantLocationChanges; 

on main thread and this does not help. 

A:

Ok, after hours of trying things, I have found this:
post. 
The solution is to allocate CLLocationManager on main thread.