使用applicationDidFinishLaunching(_:)

时间:2018-03-28 12:40:29

标签: ios uiapplicationdelegate

documentation for applicationDidFinishLaunching(_:)州......

  

虽然尚未正式弃用,但请勿在您的应用中使用此方法。改为使用应用程序(:willFinishLaunchingWithOptions :)和应用程序(:didFinishLaunchingWithOptions :)方法。

我正在寻找这背后的任何理由而无法找到任何东西。使用此功能是否有任何负面影响?

据我所知,对于iOS 3进行了更改(因此在Swift之前很长一段时间)并且旧函数没有返回任何内容,而新函数返回Bool所以有绝对是一些功能性原因,为什么不使用这个功能,而不仅仅是名称更改。

3 个答案:

答案 0 :(得分:3)

我不能在那里为Apple发言,但如果我不得不猜测,我认为无论你是否使用故事板,都会提供一个共同的切入点。 此外,didFinishLaunchingWithOptions为您提供了有关您如何启动的更多信息(来自通知,来自UITest ...)

答案 1 :(得分:2)

较新的-application:didFinishLaunchingWithOptions:方法包含有关BOOL返回值的以下注释:

  

如果应用无法处理URL资源或继续用户活动,则返回false,否则返回true。如果应用程序是由远程通知启动的,则忽略返回值。

因此,如果您使用旧的-applicationDidFinishLaunching方法,则无法获得有关出错的信息。这可能是他们不推荐的原因。

答案 2 :(得分:-1)

无法说出 applicationDidFinishLaunching( :) 的负面影响,但应用程序的附加功能:willFinishLaunchingWithOptions( :)包括

  1. 使用此方法完成应用的初始化并制作任何内容 最后的调整。
  2. 此方法代表您处理中任何键的最后机会 启动选项词典。
  3. 不是应用委托的对象可以访问相同的对象 通过观察命名的通知来启动字典值 uiapplicationdidfinishlaunchingnotification。
  4. 此方法的返回结果与返回相结合 应用程序的结果:willfinishlaunchingwithoptions:方法 确定是否应该处理网址。
  5. https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622921-application?language=objc

相关问题