title: ipad app running Core Location in background crashes
body: <p>I've been working on this for a few days. Any idea what this means? please help!
  let me know if more info is required</p>
  
  <blockquote>
    <p>EXC_BAD_ACCESS (SIGSEGV)</p>
    
    <p>Thread 11 name:  Dispatch queue: com.apple.CoreLocation.ConnectionClient.0x200826b0.events
        Thread 11 Crashed:
        0   libdispatch.dylib               0x387b2420 dispatch_sync_f$VARIANT$mp + 0
        1   CoreLocation                    0x393c8088         CLConnectionClient::setCachedResponse(CLConnectionMessage*, bool ( block_pointer)()) + 76
        2   CoreLocation                    0x393c8558     __setDefaultMessageHandler_onQueue_block_invoke_0 + 28
        3   CoreLocation                    0x393c7070 __setEventHandler_block_invoke_0 + 344
        4   libxpc.dylib                    0x367ef7e4 _xpc_connection_mach_event + 768
        5   libdispatch.dylib               0x387b6524 _dispatch_mach_msg_invoke$VARIANT$mp + 120
        6   libdispatch.dylib               0x387b2e8e _dispatch_queue_drain$VARIANT$mp + 78
        7   libdispatch.dylib               0x387b67b2 _dispatch_mach_invoke$VARIANT$mp + 158
        8   libdispatch.dylib               0x387b2e8e _dispatch_queue_drain$VARIANT$mp + 78
        9   libdispatch.dylib               0x387b2dbc _dispatch_queue_invoke$VARIANT$mp + 36
        10  libdispatch.dylib               0x387b2e8e _dispatch_queue_drain$VARIANT$mp + 78
        11  libdispatch.dylib               0x387b2dbc _dispatch_queue_invoke$VARIANT$mp + 36
        12  libdispatch.dylib               0x387b391a _dispatch_root_queue_drain + 182
        13  libdispatch.dylib               0x387b3abc _dispatch_worker_thread2 + 80
        14  libsystem_c.dylib               0x34097a0e _pthread_wqthread + 358
        15  libsystem_c.dylib               0x340978a0 start_wqthread + 4</p>
  </blockquote>
  
  <pre><code>- (void)startupLocationManager
  {
      // startup location manager for background processing
      if (self.locationManager == nil)
      {
          self.locationManager = [[CLLocationManager alloc] init];
          self.locationManager.delegate = self;
          self.locationManager.distanceFilter = kCLDistanceFilterNone;
          self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
          [self.locationManager startUpdatingLocation];
  
      }
  }
  
  - (void)stopLocationManager
  {
      if (self.locationManager)
      {
          [self.locationManager stopUpdatingLocation];
          self.locationManager.delegate = nil;
          self.locationManager = nil;
  
          if (self.isInBackground == YES)
          {
              [self startupLocationManager];
          }
      }
  }
  </code></pre>