Xcode 中iOS工程模版:
1.Application类型:
- Master-detail Application. 可以构建树形结构导航模式应用,生成的代码中包含了导航控制器和表示图控制器。(表示图控制器指的是导航控制器里的界面);
- Game. 构建基于iOS的游戏应用;
- Page-Based Application. 平铺导航,类似于电子书效果;
- Tabbed Applecation. 构建标签导航模式应用,生成的代码中包含了标签控制器和标签栏。
- Single View Application. 构建简单的单个视图应用。
2.Framework & Library类型
- Cocoa Touch Framework:自定义应用于UIKit框架;
- Cocoa Touch Library:可创建基于Foundation框架的静态库;
3.Other类型
- 可构建应用内购买内容包盒空工程——内置收费功能的应用。
新建工程中的主要组分:AppDelegate和ViewController
- AppDelegate:继承UIResponder类,并实现UIApplicationDelegate委托协议;是应用程序的委托对象,在这个类中继承的一系列方法在应用生命周期的不同阶段会被回调。
应用周期:
a.程序的生命周期是指应用程序启动到应用程序结束整个阶段的全过程
b.每一个IOS应用程序都包含一个UIApplication对象,IOS系统通过该UIApplication对象监控应用程序生命周期全过程
c.每一个IOS应用程序都要为其UIApplication对象指定一个代理对象,并由该代理对象处理UIApplication对象监测到的应用程序生命周期事件。
- ViewController:视图控制器类,在工程中就是根视图和用户事件控制类。
iOS应用的5种状态:
- Not Running (非运行状态)。应用没有运行或被系统终止。
- Inactive(前台非活动状态)。应用正在进入前台状态,但还不能接收事件处理。
- Active(前台活动状态)。应用进入前台状态,能接收事件处理。
- Background(后台状态)。应用进入后台状态,依然能够执行代码。如果有可执行的代码,则执行代码,若没有活着执行完毕,会进入挂起状态。
- Suspended(挂起状态)。处于此状态,应用将不执行代码。若内存不足,应用会被终止。
iOS运行状态的模拟调用:
- 点击应用图标时,应用启动:Not Running-->Inactive-->Active
- Not Running-->Inactive: 调用application:didFinishLaunchingWithOptions:方法 发出UIApplicationDidFinishLaunchingNotification通知。
- Inactive-->Active: 调用applicationDidBecomeActive:方法 发出UIApplicationDidBecomeActiveNotification通知。
2. 应用处于运行状态,点击Home键或者其他的应用导致当前应用中断:(根据产品属性文件中的相关属性Application does not run in background 是与否 控制两种状态)
1>可以在后台运行或者挂起: Active-->Inactive-->Background-->Suspended
- Active-->Inactive: 调用applicationWillResignActive: 方法,发出UIApplicationWillResignActiveNotification通知。
- Inactive-->Background: 应用在非活动状态进入后台。
- Background-->Suspended:调用applicationDidEnterBackground:方法 发出UIApplicationDidEnterBackgroundNotification通知。
2>不可以在后台运行或挂起:Active-->Inactive-->Background-->Suspended-->Not running
- Active-->Inactive:见上
- Inactive-->Background:应用在非活动状态进入后台。
- Background-->Suspended:调用applicationDidEnterBackground:方法 发出UIApplicationDidEnterBackgroundNotification通知。
- Suspended-->Not running:调用applicationWillTerminate:方法 发出UIApplicationWillTerminateNotification通知。
3. 内存清理--应用终止场景
- 应用在后台处理完进入到挂起状态(一种休眠状态),如果这是发现内存不足,为了满足其他应用对内存的需要,该应用会被清除内存从而终止运行。
- Background-->Suspended-->Not running
视图生命周期:
视图创建------>viewDidLoad:
------->viewWillAppear:
视图可见
------->viewDidAppear:
------->viewWillDisappear:
视图不可见
------->viewDidDisappear:
------->didReceiveMemoryWarning:
系统内存低
------->viewDidUnload: