iOS CoreLocation(null)崩溃

da3*_*a32 8 exc-bad-access core-location ios

我通过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
Run Code Online (Sandbox Code Playgroud)

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

有人能指出我正确的方向吗?谢谢

arj*_*n27 0

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

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

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

您还可以尝试适用于 iOS 的HyperTrack SDK,它将为您设置此功能以及更多功能,以便您可以构建自己的位置功能,而不必担心这项繁重的工作。(免责声明:我在 HyperTrack 工作。)