在OC項(xiàng)目中main
函數(shù)作為程序啟動(dòng)后的第二個(gè)函數(shù)被調(diào)用逛球,然后在main函數(shù)中再啟動(dòng)UIApplication
锦溪,并綁定AppDelegate
創(chuàng)建過Swift項(xiàng)目會發(fā)現(xiàn)躏精,項(xiàng)目中沒有一個(gè)名為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項(xiàng)目中添加了@UIApplicationMain
到swift文件中苗桂,使得編譯器合成了一個(gè)app入口,所以不需要main.swift
文件
在AppDelegate
文件中多了個(gè)@UIApplicationMain
的標(biāo)志告组,啟動(dòng)app并放置斷點(diǎn)煤伟,會發(fā)現(xiàn)其實(shí)main
函數(shù)還是存在的。
main.swift
如果通過自行配置入口的方式來創(chuàng)建一個(gè)UIApplication
子類木缝,那么就要?jiǎng)?chuàng)建一個(gè)main.swift
文件
首先創(chuàng)建一個(gè)swift文件便锨,命名為main
main.swift
中代碼如下
import Foundation
import UIKit
UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate))
寫好main.swift
之后,還需要把AppDelegate
中的@UIApplicationMain注釋掉或者刪掉
重新運(yùn)行項(xiàng)目我碟,app就能正常啟動(dòng)了放案。