In case user refuse to allow location update when on first time launch.
how could I detect this?
Check the authorizationStatus method of the CLLocationManager.
authorizationStatus
CLLocationManager