AppDelegate.swift和Main.swift以及如何使用它们

时间:2017-04-06 17:57:39

标签: swift xcode

我在操场上学到了很多Swift的基础知识。这个问题仍然很基本所以请耐心等待。 归结为:

顶级表达式在哪里?那里最好的礼仪是什么? 说我想创建一个只打印“Hello world”的应用程序到控制台。我在哪里放置print("Hello World")函数?

具有@UIApplicationMain属性的AppDelegate似乎有这项工作。但我只是通过删除所述属性,创建一个main.swift文件并将其放在那里来获得顶级表达式。

我正在尝试使用iOS-App

1 个答案:

答案 0 :(得分:1)

请检查iOS应用程序生命周期AppCycle。启动应用程序时会执行didFinishLaunchingWithOptions方法。我建议你把你的代码放在该函数中。

       func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

它是您实际创建mainWindow和rootViewController的起点,但您也可以执行其他执行并将print语句放在该函数中!如果您使用的是故事板,则会自动为您完成。然后将代码放在连接到故事板的ViewController类中

以下是应用程序生命周期:

enter image description here

应用-国家

未投放 该应用程序尚未启动或正在运行,但已被系统终止。

<强>无效 该应用程序在前台运行,但目前没有接收事件。 (它可能正在执行其他代码。)应用程序通常只在短暂转换到不同状态时保持此状态。

有效 该应用程序正在前台运行并正在接收事件。这是前台应用程序的正常模式。

<强>背景 该应用程序在后台并执行代码。大多数应用程序会暂停进入此状态。但是,请求额外执行时间的应用程序可能会在此状态下保留一段时间。此外,直接启动到后台的应用程序进入此状态而不是非活动状态。有关如何在后台执行代码的信息,请参阅后台执行。

<强>暂停 该应用程序在后台,但没有执行代码。系统会自动将应用程序移动到此状态,并且在执行此操作之前不会通知它们。暂停时,应用程序仍保留在内存中,但不执行任何代码。 当出现内存不足的情况时,系统可能会清除已暂停的应用程序,恕不另行通知,以便为前台应用程序腾出更多空间。

以下是您在Appdelegate类中找到的其他状态转换

应用程序:willFinishLaunchingWithOptions: - 此方法是您的应用在发布时首次执行代码的机会。

应用程序:didFinishLaunchingWithOptions: - 此方法允许您在向用户显示应用程序之前执行任何最终初始化。

applicationDidBecomeActive: - 让您的应用知道它即将成为前台应用。使用此方法进行最后一分钟准备。

applicationWillResignActive: - 让您知道您的应用正在转变为前台应用。使用此方法可将您的应用置于静止状态。

applicationDidEnterBackground: - 让您知道您的应用现在正在后台运行,并且可能随时被暂停。

pplicationWillEnterForeground: - 让您知道您的应用已移出背景并返回前台,但尚未激活。

applicationWillTerminate: - 让您知道您的应用已被终止。如果您的应用被暂停,则不会调用此方法。

(从苹果网站上获取的生命周期和转换说明)