Search code examples
iphoneobjective-ciosios5

location manager was created on a dispatch queue


what does this message mean?

NOTICE,A location manager (0xe86bdf0) was created on a dispatch queue executing on a thread other than the main thread. It is the developer's responsibility to ensure that there is a run loop running on the thread on which the location manager object is allocated. In particular, creating location managers in arbitrary dispatch queues (not attached to the main queue) is not supported and will result in callbacks not being received.


Solution

  • You must create the CLLocationManager on a thread with an active run loop, such as the main thread. You should not create it on a background thread. See CLLocationManager Class Reference for more information:

    (Configuration of your location manager object must always occur on a thread with an active run loop, such as your application’s main thread.)

    If you're interested in what exactly a run loop is, see Run Loops for further information.