iOS CoreLocation(null)崩溃

我通过Crashlytics在我的应用程序中收到此错误。 我无法找到崩溃发生的地点和方式。 以下是Crashlytics的日志:

Thread : Crashed: com.apple.main-thread 0 CoreLocation 0x0000000183f62304 (null) + 60044 1 CoreLocation 0x0000000183f230f0 (null) + 1436 2 CoreLocation 0x0000000183f230f0 (null) + 1436 3 CoreLocation 0x0000000183f2261c (null) + 1980 4 CoreFoundation 0x0000000183754c9c __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28 5 CoreFoundation 0x0000000183754940 __CFRunLoopDoTimer + 884 6 CoreFoundation 0x0000000183752054 __CFRunLoopRun + 1520 7 CoreFoundation 0x0000000183680dc0 CFRunLoopRunSpecific + 384 

并且还说明了:崩溃:com.apple.main-thread EXC_BAD_ACCESS KERN_INVALID_ADDRESS位于0x6136383561626000

任何人都可以指出我正确的方向? 谢谢

当应用程序变为非活动状态时,计时器需要无效。 在applicationWillResignActive方法中,使计时器对象无效。 您可以在applicationDidBecomeActive方法中重新将其重置。 来自文档:

您应该使用此方法暂停正在进行的任务,禁用计时器,并降低OpenGL ES帧速率。 游戏应该使用此方法暂停游戏。 处于非活动状态的应用程序在等待转换为活动状态或后台状态时应执行最少的工作。

如果要构建需要在后台收集位置的应用程序,请确保使用位置更新后台function。

您还可以试用适用于iOS的HyperTrack SDK,它可以为您设置更多function,以便您可以构建位置function,而不必担心这种笨拙的工作。 (免责声明:我在HyperTrack工作。)