我已经为此做了几天了。知道这意味着什么吗?请帮帮忙!如果需要更多的信息,请告诉我
EXC_BAD_ACCESS (SIGSEGV) 线程11名称:分派队列: com.apple.CoreLocation.ConnectionClient.0x200826b0.events线程11崩溃:0 libdispatch.dylib 0x387b2420 dispatch_sync_f$VARIANT$mp +0 1 CoreLocation 0x393c8088 CLConnectionClient::setCachedResponse(CLConnectionMessage*,bool (Block_pointer)()+ 76 2 CoreLocation 0x393c8558 __setEventHandler_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_$变量$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
- (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];
}
}
}发布于 2013-03-09 17:59:40
我在其他帖子的帮助下找到了解决方案。事实证明,这是一个时间问题。我创建了另一种重置位置管理器的方法,并延迟调用它。这个解决了所有的问题。希望这对你也有帮助。
- (void)stopLocationManager
{
if (locationManager)
{
[locationManager stopUpdatingLocation];
[self performSelector:@selector(discardLocationManager) withObject:nil afterDelay:0.1];
}
}
- (void) discardLocationManager
{
locationManager.delegate = nil;
locationManager = nil;
if (self.isRestart == YES)
{
[self performSelector:@selector(startupLocationManager) withObject:nil afterDelay:0.1];
}
}https://stackoverflow.com/questions/13274148
复制相似问题