iOS CoreLocation(null)崩溃

时间:2015-10-02 02:16:26

标签: ios core-location exc-bad-access

我通过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

任何人都能指出我正确的方向吗?感谢

1 个答案:

答案 0 :(得分:0)

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

  

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

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

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