我有一个应用程序,当打开时,显示一个启动/加载屏幕。在应用程序继续运行之前,我将其设置为2.5秒。
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
sleep(2.5);
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}我现在想让应用程序在闪屏上暂停一分钟(这是有很好的理由的),所以我想:
sleep(60.0);可能会被使用。然而,当我使用它时,我的应用程序会打开并停留在闪屏大约20秒,然后退出/崩溃回到跳板。
你知道为什么会这样吗?
我该怎么做呢?
编辑//值得注意的是:
sleep(15.0);和
sleep(19.0);工作。
sleep(20.0);不会。
解决方案//不使用睡眠,使用计时器。我在这里遵循了tutorial:
http://adeem.me/blog/2009/06/22/creating-splash-screen-tutorial-for-iphone/
非常感谢,
Stu
发布于 2009-11-23 07:18:32
我在这里纯粹是猜测,但可能是因为您阻塞了主线程(使用睡眠而不是计时器),iPhone OS将其视为“无响应的应用程序”并终止它。
查看NSTimer。
发布于 2009-11-23 08:25:19
我同意Joshua Nozzi的观点,操作系统“认为”你的应用程序已经崩溃了。
我将删除sleep()并执行以下操作:
[window performSelector:@selector(addSubview:) withObject:viewController.view afterDelay:60.0f];
[window performSelector:@selector(makeKeyAndVisible) withObject:nil afterDelay:60.0f];发布于 2009-11-23 07:29:35
如果你查看你的控制台,你可能会看到类似下面这样的东西…
警告:您的应用程序名称未能及时启动
警告:正在强制应用程序名称的崩溃报告...
警告:已完成崩溃报告。
基本上,因为您让主线程休眠了太长时间,所以操作系统决定应用程序无法启动,并强制应用程序退出。您最好使用计时器来执行延迟,以便主线程保持活动状态。
https://stackoverflow.com/questions/1780358
复制相似问题