应用程序启动原理iOS学院掌握•Info.plist和pch文件的作用•UIApplication的常见使用•AppDelegate的代理方法•UIApplication、AppDelegate、UIWindow/UIViewController的关系•iOS程序的完整启动过程Info.plist常见的设置•建立一个工程后,会在Supportingfiles文件夹下看到一个“工程名-info.plist”的文件,该文件对工程做一些运行时的配置,非常重要,不能删除•在旧版本的Xcode创建的工程中,这个配置文件的名称就叫“Info.plist”•项目中其他plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“info.plist”•项目中还有一个InfoPlist.strings的文件,跟info.plist文件的本地化相关。Info.plist的常见属性•常见属性(红色部分是用文本编辑器打开时看到的key)•Localiztionnativedevelopmentregion[CFBundleDevelopmentRegion]•本地化相关•Bundledisplayname[CFBundleDisplayName]•程序安装后显示的名称,限制在12个字符,如果超出,将被显示缩写名称•Bundleversion[CFBundleVersion]•应用程序的版本号,每次往AppStore上发布一个新版本时,需要增加这个版本号•Mainstoryboardfilebasename[NSMainStoryboardFile]•主storyboard文件的名称•Bundleidentifier[CFBundleIdentifier]•项目的唯一标识,部署到真机时用到PCH文件•项目的Supportingfiles“文件夹下面有个工程名-Prefix.pch”文件,也是一个头文件•pch头文件的内容能被项目中的其他所有源文件共享和访问•一般在pch文件中定义一些全局的宏•在pch文件中添加下列预处理指令,然后在项目中使用Log(…)来输出日志信息,就可以在发布应用的时候,一次性将NSLog语句移除(在调试模式下,才有定义DEBUG)#ifdefDEBUG#defineLog(...)NSLog(__VA_ARGS__)#else#defineLog(...)/**/#endif切换应用程序的运行模式1.编辑Scheme2.修改程序的运行模式UIApplicationMain•main()函数中执行了一个UIApplicationMain()这个函数•intUIApplicationMain(intargc,char*argv[],NSString*principalClassName,NSString*delegateClassName);•argc:使用main函数的argc即可•argv:使用main函数的argv即可•principalClassName:指定应用程序类名(app的象征),该类必须是UIApplication(或子类),如果为nil,则用UIApplication类作为默认值•delegateClassName:指定应用程序的代理类,UIApplicationDelegate协议中定义的方法,在该类中实现UIApplicationMain•UIApplicationMa...