On my story board, I have set up a timer (which updates every 0.01 seconds) and a UIMapView which displays the user's location when the view controller is loaded. However, when this screen loads, the timer lags for a bit until the map is fully loaded. I assume this is because the loading of the map is a blocking function performed on the main thread.
Is there any way to load the map in the background and display it after it has fully loaded while still keeping the timer running?
Probably not. A map view is a view object and view objects are not thread safe.
Note that Apple's docs on NSTimer say:
50 ms is .02 seconds. 100 ms is .04. Thus you are not likely to get the accuracy you need.