在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就能正常啟動了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容