IOS的工程目录结构和生命周期
·simple table文件夹:工程相关源代码和配置文件
BIDAppDelegate : 委托的声明和实现
BIDViewController: 视图控制类的声明和实现
xib文件: 视图文件,提供给interface builder(IB)设计和编辑视图
·supporting files:
main.m和资源文件
xxx-info.plist:包含应用程序相关属性列表,如版本,程序名等
.pch文件:预编译头文件,相当于MFC里的stdafx.h,默认已经包含了常用 的头文件
.strings文件:国际化字符串资源
图片,音视频等其他资源
·frameworks:
程序需要的外部库文件,默认已经包含常用的库,如UIKit,Foundation等库,默认生成三个框架,添加的新的框架也放在这里
·products:生成的应用文件
我觉得这幅图很好地展现了一个应用程序的执行过程,应用程序生命周期:
UIApplicationDelegate 包含下面几个函数监控应用程序状态的改变:
- – application:didFinishLaunchingWithOptions:
- – applicationDidBecomeActive:
- – applicationWillResignActive:
- – applicationDidEnterBackground:
- – applicationWillEnterForeground:
- – applicationWillTerminate:
iOS4.0以后系统支持多任务类型,对于applicationWillTerminate函数,对于我们一般的应用程序,当按下home按钮之后,应用程序会处于一个suspended状态,如果现在去运行其他的程序,当内存不足,或者在多任务栏点击“减号”会完全退出应用程序,但是不管是哪一种,都不会去调用applicationWillTerminate函数(针对IOS4以上),因此我们不能在此函数中保存数据。
这与当应用程序按下home按钮之后,应用程序的状态有关,当状态为suspended时,是永远不会调用此函数的,而当状态为“后台运行”(running in the background)时,内存不足或者点击“减号”时,才会调用此函数。