我在最新的应用程序版本中遇到了一致的问题。我有一个在 AppDelegate 中运行的计时器,它每 30 秒调用一次函数来加载新广告。我认为这是这次崩溃的罪魁祸首。使用 Crittercism,我已经为 13 个用户发生了超过 20 次崩溃。用户大多使用 IOS 6 或它的一些变体。这是它给我的日志:
SEGV_ACCERR
0 libobjc.A.dylib 0x3acd25b0 objc_msgSend + 16
1 基础 0x3394b277 __NSFireDelayedPerform + 451
2 核心基础 0x330125df CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 15
3 核心基础 0x33012291 __CFRunLoopDoTimer + 273
4 核心基础 0x33010f01 __CFRunLoopRun + 1233
5 核心基础 0x32f83ebd CFRunLoopRunSpecific + 357
6 核心基础 0x32f83d49 CFRunLoopRunInMode + 105
7 图形服务 0x36b452eb GSEventRunModal + 75
8 UIKit 0x34e99301 UIApplicationMain + 1121
9 AutoScene 0x000031b7 主要 (main.m:7)
我的计时器是:
[NSTimer scheduledTimerWithTimeInterval:30 target:self selector:@selector(resetAdTimer) userInfo:nil repeats:YES];
我不知道这是否是同样的问题,但我经历过从后台返回应用程序并且它只是挂起的时候。它似乎也挂起 30 秒,这让我相信这是计时器代码。
这是管理广告获取的糟糕方式吗?长时间进入后台时,计时器代码是否会出错?
谢谢你的帮助!