AppDelegate.m 的“application:didFinishLaunchingWithOptions”的默认实现是不是从 iOS 6 更改为 iOS 8?

Posted

技术标签:

【中文标题】AppDelegate.m 的“application:didFinishLaunchingWithOptions”的默认实现是不是从 iOS 6 更改为 iOS 8?【英文标题】:Did AppDelegate.m's default implementation for 'application:didFinishLaunchingWithOptions' change from iOS 6 to iOS 8?AppDelegate.m 的“application:didFinishLaunchingWithOptions”的默认实现是否从 iOS 6 更改为 iOS 8? 【发布时间】:2016-01-29 21:04:25 【问题描述】:

我尝试在 apple.stackexchange.com 上问这个问题,但它被标记为该板的题外话,所以我希望这里更合适:

我正在关注 2 个 ios 教程(Big Nerd Ranch 和另一个),两者都明确声明他们正在使用 XCode 5 和 iOS 7。当引用 AppDelegate.m 的方法“application:didFinishLaunchingWithOptions:”时,两者也显示初始化“self.window”的预先存在的代码,并在方法的更下方调用[self.window makeKeyAndVisible]。例如下图取自this tutorial:

我在 iOS 8.4 中使用 XCode 6.4。我尝试过创建几种类型的应用程序,包括单视图应用程序、主从应用程序和基于页面的应用程序。在每个应用程序中,“application:didFinishLaunchingWithOptions:”方法的默认模板如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    // Override point for customization after application launch.
    return YES;

我想知道为什么我的 Xcode 7 默认模板中似乎缺少该代码。这似乎是大多数开发人员希望默认包含的内容,因为现在他们可能不得不为大多数应用程序手动编写它。因此,如果 Apple 确实删除了它,我很好奇这样做的动机是什么。

【问题讨论】:

【参考方案1】:

这是因为默认情况下,新项目配置为使用情节提要,不需要 AppDelegate 设置窗口。

【讨论】:

有没有办法更改默认配置以包含代码? 您可以修改 Xcode 使用的模板,但您必须在更新 Xcode 的任何时候更新它们,因为它会被覆盖。这个问题也许可以帮助你:***.com/q/33720/797767

以上是关于AppDelegate.m 的“application:didFinishLaunchingWithOptions”的默认实现是不是从 iOS 6 更改为 iOS 8?的主要内容,如果未能解决你的问题,请参考以下文章

AppDelegate.swift 如何在 Xcode 6.3 中替换 AppDelegate.h 和 AppDelegate.m

iOS AppDelegate的.m文件解析

如何从 AppDelegate.m 访问 tabBarController?

未修改的 AppDelegate.m 中的编译错误

IOS 使用 AppDelegate.m 中 ViewController.m 的方法?

如何从 AppDelegate.m 调用 ViewController.m 方法