1

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

4

2 回答 2

3

在后台运行它们,例如:

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

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

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // tasks
});
于 2012-10-30T21:16:53.063 回答
1

Default.png 总是首先出现;当它显示您可以开始其他任务时。

你能在 didFinishLaunchingWithOptions 中加载文件吗?

您不应该依赖您的用户乐于长时间盯着 Default.png,因此建议的过程是让它显示,花费最少的时间来执行您需要执行的任何文件操作 - 希望在后台线程 - 然后启动一些实际的 UI 并尽快启动应用程序。

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

于 2012-10-30T21:16:51.053 回答