OC项目中的main函数
大家是否发现,以前用OC语言创建的项目,一定会有一个main.m文件,里面有一个main函数,在这个函数中唤醒app。如果在app启动时放置断点,可以看到应用程序调用栈,如下图
main函数作为程序启动后的第二个函数被调用,然后在main函数中再启动UIApplication,并绑定AppDelegate
Swift项目中的main函数为何隐藏
创建过Swift项目的童鞋应该会发现,项目中没有一个名为main.swift的文件,为什么app的入口没有了?官方文档的说法是这样的
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的