Swift iOS应用程序从何处开始?

nhg*_*rif 5 lifecycle program-entry-point ios swift

如果我在Xcode中创建一个Objective-C iOS应用程序,main.m则会生成一个名为的文件.该文件的内容如下所示:

的main.m

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是Objective-C iOS应用程序开始其生命的地方.

重要的是,如果我想要子类UIApplication(无论出于何种原因),那么我可以在这里告诉我的应用程序将哪个类用于应用程序类.同样,如果由于某种原因我想使用除AppDelegate我的应用之外的类名,我会在这里更改这些信息.

但是,如果我在Xcode中创建一个Swift iOS应用程序,则不会生成这样的文件(我已经能够找到).我在哪里设置这些东西?

jtb*_*des 7

在Swift中,您可以@UIApplicationMain在app delegate类上使用该属性,它将自动UIApplicationMain()为您调用该函数.

@UIApplicationMain
class YourAppDelegate: UIResponder, UIApplicationDelegate { ...
Run Code Online (Sandbox Code Playgroud)

还有另一种选择:

如果不使用此属性,请为main.swift文件提供main调用该UIApplicationMain函数的函数.例如,如果您的应用使用自定义子类UIApplication作为其主要类,请调用该UIApplicationMain函数而不是使用此属性.


参考文献: