什么是快速代码执行的入口点?

在swift中没有main()方法。 程序必须从某处开始执行。 那么swift代码执行的入口是什么?它是如何决定的?

简单Swift模块中的入口点是名为main.swift模块中的文件。 main.swift是唯一允许在顶层具有expression式和语句的文件(模块中的所有其他Swift文件只能包含声明)。

Cocoa Touch在UIApplicationDelegate的实现上使用@UIApplicationMain属性来代替main.swift文件来标记入口点。 cocoa过去使用一个简单的叫做NSApplicationMain的最小main.swift文件,但是从Xcode 6.1 @NSApplicationMainNSApplicationDelegate的实现上使用了@NSApplicationMain NSApplicationDelegate 属性 。

AppDelegate.swift文件中,您可以看到@UIApplicationMain
AppDelegate是最初的入口文件。

基本上: main.mAppDelegate.mSwift被合并到AppDelegate.swift

您可能想要阅读文件和初始化

这个例外是一个名为“main.swift”的特殊文件,它的行为非常类似于操作系统文件,但是它是用你的应用程序的源代码构build的。 “main.swift”文件可以包含顶级代码,也可以使用依赖于顺序的规则。 实际上,在“main.swift”中运行的第一行代码被隐式定义为程序的主要入口点。 这允许最小的Swift程序成为一行 – 只要该行在“main.swift”中。

在Xcode中,Mac模板默认包含“main.swift”文件,但对于iOS应用程序,新iOS项目模板的默认值是将@UIApplicationMain添加到常规Swift文件。 这会使编译器综合iOS应用程序的主要入口点,并且不需要“main.swift”文件。

或者,您可以链接Objective-C中编写的主要实现,当从Objective-C向Swift逐步迁移项目时,这是常见的。