在swift工程中添加main

在OC项目中main函数作为程序启动后的第二个函数被调用,然后在main函数中再启动UIApplication,并绑定AppDelegate

创建过Swift项目会发现,项目中没有一个名为main.swift的入口没有了?官方文档的说法是这样的:

In Xcode, Mac templates default to including a “main.swift” file, but for iOS apps the default for new iOS project templates is to add @UIApplicationMain to a regular Swift file. This causes the compiler to synthesize a mainentry point for your iOS app, and eliminates the need for a “main.swift” file.

意思是,Swift项目中添加了@UIApplicationMain到swift文件中,使得编译器合成了一个app入口,所以不需要main.swift文件

AppDelegate文件中多了个@UIApplicationMain的标志,启动app并放置断点,会发现其实main函数还是存在的。

main.png
main.swift

如果通过自行配置入口的方式来创建一个UIApplication子类,那么就要创建一个main.swift文件

首先创建一个swift文件,命名为main
main.swift中代码如下

import Foundation
import UIKit

UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate))

写好main.swift之后,还需要把AppDelegate中的@UIApplicationMain注释掉或者删掉

注释掉.png

重新运行项目,app就能正常启动了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容