2017-04-06 80 views
1

我已經在操場上學到了一些Swift的基礎知識。這個問題還是非常基礎的,請耐心等待。 歸結爲:AppDelegate.swift和Main.swift以及如何使用它們

頂級表達式去哪了?這裏最好的禮儀是什麼? 假設我想製作一個只需將「Hello world」打印到控制檯的應用程序。我在哪裏可以放入print("Hello World")功能?

具有@UIApplicationMain屬性的AppDelegate似乎有這項工作。但我只能通過刪除所述屬性來獲得頂級表達式,創建一個main.swift文件並將其放到那裏。

我試圖做到這一點使用iOS應用程序內

+0

iOS應用? macOS應用程序?命令行工具? –

+0

@MartinR iOS App – Marmelador

+0

簡而言之,有一些[回調](https://www.andrewcbancroft.com/2016/02/15/fundamentals-of-callbacks-for-swift-developers/)你在AppDelegate中(見[AppDelegate與main](http://stackoverflow.com/questions/3464030/relationship-between-appdelegate-and-main-m)Swift的AppDelegate與Objective-C幾乎相同)。就像應用程序第一次運行時的回調一樣,當您點擊主頁按鈕時會出現回調,而當您再次點擊應用程序圖標時會出現回調。開發人員Omari的答案突出顯示了您的相關語法 – Honey

回答

1

請iOS的應用程序生命週期AppCycle。 didFinishLaunchingWithOptions方法在您的應用程序啓動時執行。我會建議你把你的代碼放在那個函數裏面。

​​

它的出發點,你實際上是創建主窗口和RootViewController的,但你也可以做其他的執行,並把您的打印語句函數內!如果您正在使用故事板,則會自動爲您完成。你把你的代碼連接到你的故事板

這裏您的視圖控制器類裏面的應用程序生命週期:

未運行 的應用

enter image description here

的App-國尚未啓動或正在運行,但已被系統終止。

不活動 該應用程序在前臺運行,但目前沒有收到事件。 (儘管如此,它可能正在執行其他代碼。)應用程序通常只會在轉換到其他狀態時暫時保持此狀態。

活躍 該應用程序在前臺運行,並正在接收事件。這是前臺應用程序的正常模式。

背景 該應用程序在後臺執行代碼。大多數應用程序在進入暫停狀態時會暫時進入此狀態。但是,請求額外執行時間的應用可能會保持一段時間。另外,直接在後臺啓動的應用程序將進入此狀態而不是非活動狀態。有關如何在後臺執行代碼的信息,請參閱後臺執行。

暫停 該應用程序在後臺但未執行代碼。系統會自動將應用程序移至此狀態,並且在此之前不會通知他們。暫停時,應用會保留在內存中,但不會執行任何代碼。 發生內存不足情況時,系統可能會在不通知的情況下清除暫停的應用程序,以便爲前臺應用程序騰出更多空間。

這裏是另一種狀態的轉變,你發現他們在你的AppDelegate類

應用:willFinishLaunchingWithOptions: - 此方法是你的應用首次在啓動時執行代碼的機會。

application:didFinishLaunchingWithOptions: - 此方法允許您在應用程序顯示給用戶之前執行任何最終初始化。

applicationDidBecomeActive: - 讓您的應用知道它即將成爲前臺應用。使用此方法進行最後一分鐘的準備。

applicationWillResignActive: - 讓您知道您的應用正在從前臺應用轉變而來。使用此方法將您的應用程序置於靜止狀態。

applicationDidEnterBackground: - 您知道您的應用程序現在正在後臺運行,並且可能隨時暫停。

a pplicationWillEnterForeground: - 您知道您的應用正在移出背景並返回前景,但尚未激活。

applicationWillTerminate: - 讓您知道您的應用正在終止。如果您的應用已被暫停,則不會調用此方法。

(描述從蘋果網站獲取的生命週期和轉換)

相關問題