- 在oc中约炎,大家能很容易的就能夠找到main.m文件了侯谁,因?yàn)槲覀儎?chuàng)建項(xiàng)目的時(shí)候,Xcode自動(dòng)就創(chuàng)建好了main.m文件
- 但是在swift項(xiàng)目中,創(chuàng)建項(xiàng)目的時(shí)候卻找不到main文件了墙贱,這是為什么热芹?
因?yàn)槲覀儎?chuàng)建swift項(xiàng)目的時(shí)候,Xcode不幫我們創(chuàng)建main文件了惨撇,在swift中取消了main文件
- 其實(shí)在oc中的main.m文件里伊脓,也就是只有一個(gè)main函數(shù)。這個(gè)函數(shù)返回了一個(gè)UIApplicationMain函數(shù)魁衙,說明程序的入口就是在UIApplicationMain函數(shù)里报腔,因此如果在swift項(xiàng)目中需要用到main函數(shù)的時(shí)候,我們可以模仿oc的寫法剖淀,手動(dòng)創(chuàng)建一個(gè)main.swift文件纯蛾,然后寫一個(gè)UIApplicationMain函數(shù)就好了,這樣就相當(dāng)于跟oc的main.m文件一樣效果了
- 當(dāng)然纵隔,在swift中既然取消了main文件翻诉,那么肯定也會(huì)去執(zhí)行UIApplicationMain函數(shù)的。仔細(xì)一找就會(huì)發(fā)現(xiàn)捌刮,swift項(xiàng)目的AppDelegate文件中碰煌,在class前面還是有一個(gè)@UIApplicationMain的,這就是程序的入口了
- 當(dāng)我們需要修改程序入口的方式時(shí)绅作,創(chuàng)建一個(gè)main.swift文件芦圾,添加一個(gè)UIApplicationMain函數(shù),并且再將AppDelegate中的 @UIApplicationMain 注釋掉
UIApplicationMain(CommandLine.argc, UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer<Int8>.self,capacity: Int(CommandLine.argc)), nil, NSStringFromClass(AppDelegate.self))
image.png
[創(chuàng)建main文件] http://www.reibang.com/p/b23b79f7a0c3