2014-06-08 31 views

回答

63

簡單Swift模塊中的入口點是模塊中名爲main.swift的文件。 main.swift是唯一允許在頂層具有表達式和語句的文件(模塊中的所有其他Swift文件只能包含聲明)。

Cocoa Touch在執行UIApplicationDelegate時使用@UIApplicationMain attribute而不是main.swift文件來標記入口點。可可過去使用最小的main.swift文件,該文件簡單地稱爲NSApplicationMain,但as of Xcode 6.1NSApplicationDelegate的實現上使用@NSApplicationMain attribute

+1

我創建了一個新的xcode項目,我無法在任何地方找到'main.swift'文件。這個文件的位置是什麼? – Selvin

+0

在Cocoa和Cocoa Touch應用程序中'main.swift'位於** Supporting Files **組中,並且只是簡單配置爲調用'NSApplicationMain'。 – nathan

+3

沒有它在支持文件組中。它並不在項目中的任何地方。 – Selvin

30

AppDelegate.swift文件中,您可以看到@UIApplicationMain
AppDelegate是初始條目文件。

基本上是:main.mAppDelegate.m都有點在Swift合併只是AppDelegate.swift

+2

@nathan他標記** iOS8 **,這是'Cocoa-Touch',我的回答是正確的。 – Houssni

+1

的確是的! :) – Selvin

19

您可能需要閱讀Files and Initialization

唯一的例外是名爲「main.swift」一個特殊的文件,其行爲多 就像一個遊樂場文件一樣,但它是用你的應用程序的源代碼構建的。「main.swift」文件可以包含頂級代碼,並且也可以使用與順序有關的規則。實際上,在 「main.swift」中運行的第一行代碼被隱式定義爲 程序的主要入口點。這允許最小的Swift程序成爲一行 - ,只要該行在「main.swift」中即可。

在Xcode中,Mac模板默認包含「main.swift」文件,但對於iOS應用程序,默認爲新iOS項目模板的 將 @UIApplicationMain添加到常規Swift文件。這會導致編譯器 綜合iOS應用程序的主要入口點,並消除對「main.swift」文件的需求 。

或者,您可以鏈接到一個主要實現中,編寫爲 Objective-C,在將項目從 遞增移植到Swift時很常見。

+1

我發現這是一個更好,更高層次的iOS入口點設置的解釋。 – Steven

-1

在Swift中,好像main.swift本身就是main()方法。

+0

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/19053808) – msparer