在iOS Launch Image下会发生什么?

时间:2013-12-16 19:16:43

标签: ios launching-application load-time

如果我正在尝试减少应用的加载时间(也就是说,在初始View Controller出现之前启动图像可见的时间),我应该在哪里集中精力?我发现了几个问题(比如this)来处理很长的启动时间,但它们似乎专注于第一个View Controller的性能。我正在寻找应用程序生命周期开始时的更多信息,以及我可以清理哪些方法以改善启动图像的持续时间。

我想application:didFinishLaunchingWithOptions:中的AppDelegate可能会在该时间窗口被调用,但还有其他什么吗?从Xcode模板中假设一个基本的应用程序设计,没有异常的构建规则或类似的东西。除了didFinishLaunching和第一个视图控制器的加载方法之外,还有其他我应该看的吗?

2 个答案:

答案 0 :(得分:4)

你应该学习使用Instruments来弄清楚你的程序在做什么。 “Time Profiler”工具将是一个很好的起点。

抽象地回答这个问题几乎是不可能的。真正的答案是“这取决于您的应用程序的编写方式。”

系统将调用你的app委托上的init方法,以及类方法+ initialize(如果你有的话 - 你可能没有。)

如果您正在使用故事板,系统将打开您的应用程序的故事板并找出哪个视图控制器是根视图控制器。它将加载该视图控制器并调用它。因此,调用该视图控制器所涉及的所有方法都将触发。

完成后,将调用didFinishLaunching:withOptions方法。您应该确保此方法不会执行任何需要很长时间的操作,例如从Internet下载内容。

如果确实需要在启动时下载内容,则应该异步执行。

答案 1 :(得分:1)

你是对的。还要确保您的第一个viewcontrollers预显示方法很轻(例如init,viewDidLoad,viewWillAppear)。

要验证哪些方法真正影响你可以将NSThreads sleepForTimeInterval置于战略要点。仅在调试/开发过程中。