【发布时间】:2013-01-27 06:41:03
【问题描述】:
当我的应用从主页按钮失去焦点后重新打开时,我遇到了一种奇怪的行为。在模拟器上,应用程序屏幕会黑屏 5 秒或更长时间,然后才能恢复应用程序。在测试设备上,应用程序要么进行长时间的延迟,要么完全退出并重置为启动状态。我已将 NSLog 调试 cmets 放在“applicationWillEnterForeground”和“applicationDidBecomeActive”中,但它们只会在长时间延迟后出现,所以我现在假设这些函数中的任何内容都不会导致这种延迟。
我在我的程序中使用以下组件: * 一个标签栏控制器 * 2 个计时器,地图套件 * IP 套接字流 * 24 个 ViewController 串在一个故事板上。 * 不少背景图片和图片按钮
如果我知道程序的哪些部分导致了这个错误,我会很乐意发布代码,但事实上我一无所知。有没有其他人遇到过这种类型的错误?我列出的任何组件是否有导致类似错误的历史记录?
当这个错误被发现时,我的开发还很遥远,我没有在增量开发过程中测试通过主页按钮失去焦点。其他较小的项目(使用套接字和计时器)在相同的测试硬件上没有遇到相同的错误。
我正在使用“applicationWillResignActive”来禁用计时器,并关闭流。我正在使用“applicationDidBecomeActive”重新启动计时器,并重新打开流。延迟发生在“applicationWillEnterForeground”和“applicationDidBecomeActive”运行之前。此外,我尝试禁用启动流和计时器的代码,但这对错误没有任何影响。
我正在使用 xCode4.4.1、ios6,并且专为 iPad 构建。
【问题讨论】:
-
您拥有的任何设置初始变量的代码都应该在
viewDidLoad或awakeFromNib... 听起来您已经将初始变量设置代码放在应用程序时触发的其他内容中“重新获得”焦点...无论您最初是在哪里设置变量,我都会将其移至viewDidLoad。 -
我忘了说应用在 1 秒内加载完毕,只有重新加载过程会挂起超过 5 秒或完全崩溃
标签: ios objective-c ios6 ios-simulator