如何在iPhone程序开始时运行一个功能?

时间:2012-10-30 21:15:13

标签: iphone objective-c xcode

所以在应用程序启动时我的iPhone应用程序中我需要加载几个外部文件,我的问题是我想在应用程序启动时加载它们,但如果我在目标c中使用viewDidLoad它将首先加载我的文件,然后显示屏幕。我可以做些什么才能让屏幕先出现然后再运行我的所有功能?

2 个答案:

答案 0 :(得分:3)

在后台运行它们,例如:

dispatch_async(dispatch_get_main_queue(), ^{
    // tasks
});

如果任务不需要在主队列上运行,那么在单独的队列上运行它们要好得多,因为它们不会阻止用户界面更新:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // tasks
});

答案 1 :(得分:1)

Default.png始终首先出现;虽然它显示你可以开始其他任务。

你可以在didFinishLaunchingWithOptions中输入文件吗?

你不应该依赖你的用户很高兴长时间盯着Default.png,所以建议的过程是让它显示,花费很少的时间来做你需要做的任何文件操作 - 希望做的很重在后台线程中解除 - 然后获得一些实际的UI并尽快启动应用程序。

如果您正在使用网络(外部文件)做某事,您可能会从像AFNetworking这样的库中获得所需的所有帮助,这将使您开始操作并指定在接收数据时要执行的代码块,让你继续使用UI。