- 浏览: 2964509 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (893)
- android (110)
- iphone (198)
- java (79)
- JavaScript手册-目录 (9)
- JavaScript手册-Array (19)
- JavaScript手册-Boolean (5)
- JavaScript手册-Date (50)
- JavaScript手册-Math (30)
- JavaScript手册-Number (14)
- JavaScript手册-RegExp (7)
- JavaScript手册-String (38)
- JavaScript手册-全局函数 (8)
- JavaScript实用脚本 (7)
- Others (21)
- java-jpcap (7)
- java-thread (1)
- ibm文章 (3)
- classloader (2)
- java-filter (2)
- 运行环境 (33)
- java-正则 (2)
- oracle (1)
- linux-shell (26)
- wap (1)
- sqlite (3)
- wow (1)
- jvm (1)
- git (5)
- unity3d (29)
- iap (2)
- mysql (23)
- nginx (14)
- tomcat (9)
- apache (2)
- php (1)
- ubuntu (40)
- rsa (1)
- golang (21)
- appstore (5)
- sftp (2)
- log4j (2)
- netty (18)
- 测试工具 (6)
- memcache (5)
- 设计模式 (1)
- centos (8)
- google_iab (5)
- iOS专题 (4)
- mac (10)
- 安装配置帮助手册 (2)
- im4java_graphicsmagick (5)
- inotify-tools (1)
- erlang (6)
- 微信支付 (1)
- redis (8)
- RabbitMQ (5)
最新评论
-
heng123:
Netty视频教程https://www.douban.com ...
netty4.0.23 初学的demo -
maotou1988:
使用Netty进行Android与Server端通信实现文字发 ...
netty4.0.23 初学的demo -
码革裹尸:
非常感谢,正好用上
android 呼入电话的监听(来电监听) -
rigou:
提示的/222.177.4.242 无法链接到ip地址,是什 ...
通过 itms:services://? 在线安装ipa ,跨过app-store -
duwanbo:
GridView与数据绑定
iPhone应用生命周期
转载自 : http://hi.baidu.com/%D0%A1%B0%D7%D2%B2%BA%DC%B7%E7%C9%A7/blog/item/b394935dd3be9e5bfaf2c03b.html
整个应用程序的生命周期为:
1用户启动应用程序
2应用程序初始化
3装载主xib----|
|循环处理事件
4等待事件----|
5处理事件
6退出应用
在装载完xib之后,应用的回调方法(如applicationDidFinishLaunching)被调用。在退出应用之前,applicationWillTerminate被调用。所以,可以在applicationWillTerminate方法内保存应用的当前状态,而在applicationDidFinishLaunching方法内回复应用状态。
当你在Xcode上创建一个新的应用程序时,Xcode其实已经为你准备好了基本的应用结构。你在不屑一行代码的情况下,都可以运行这个应用程序并显示一个空白窗口。也就是说,应用启动的代码和主xib都已经在于你的应用程序中了。
在other sources下,有一个文件叫做main.m,代码如下:
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]){
NSAutoreleasePool * pool = [[NSAututoreleasePool alloc] init];
int retVal = UIApplicationMain(argc,argv,nil,nil);
[pool release];
return retVal;
}
这个程序类似Java/C的mian方法。当用户启动应用程序后,这个方法被调用。从上面代码看到,它调用了UIApplicationMain方法。UIApplicationMain方法创建UIApplication实例,并装载主xib。
主xib来自Info.plist文件
#File's Owner:这个对象就是UIApplocation实例。它有一个delegate的输入口属性。该属性连接到HelloWorldAppDelegate。从而,在应用启动时,系统可以调用委托类上的回调方法。在不同的环境下,File's Onwer代表的对象不同。
#FirstRespender:这个对象记录当前正在操作的对象。比如:你在文本框输入文字信息,那First Responder就是文本输入框对象。UIView和UIApplication的父类是UIResponder。
#HelloWorld App Delegate:应用的委托类。
#Window:窗口。就是应用启动后所看见到的窗口。
#HelloWorldController:控制器。
UIApplication装载了上述实例,并完成了下述动作:
#创建HelloWorldAppDelegate
#创建窗口
#创建HelloWorldController
执行委托类上的回调方法
在这之后,系统回调HelloWorldAppDelegate的applictionDidFinishLaunching(或者didFinsihLaunchngWithOptions)方法。在这个方法中,就是显示窗口。从而,用户能看到这个窗口。
#improt “HelloWorldAppDelegate.h"
@implementation HelloWroldAppDelegate
@synthesize window;
-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[window makeKeyAndVisible];显示窗口
return YES;
}
当然,在这个applicationDidFinishLaunching方法上,你还可以装载其他的对象,但不建议。用户不会等那么长时间。那么你可以先显示一个”正在装载“等图,并用一个线程来装载这些数据。
处理事件
在UIAppliaction把整个应用程序的控制权放在用户手里之前,UIApplication还要设置一个名叫run loop的事件处理队列和事件处理代码。当用户操作窗口上的对象时,系统会产生一个事件,并放到应用的事件列队上,这个事件是UIEvent类的对象。“run loop”监视器调度事件给相应的对象来处理。 事件处理完成后控制权就又回到run loop。它就是处理一个又一个 。
暂停或者结束应用程序
在结束应用之前,回调applicationWillTerminate方法
-(void)applicaionWillTerminate:(UIApplication *)application{}
在这个方法中,你可以保留应用执行状态。
有时候你需要暂停应用程序,比如,来了一个电话。如果应用程序需要特别的处理(比如暂停某个游戏),那么,你需要在下面的两个回调方法中放入代码:
-(void)applicationWillResiggActive:(UIApplication *)appliction {}
-(void)applicationDidBecomeActive:(UIApplication *)application{}
来一个电话时,系统就会调用applicationWillResignActive方法。它显示一个信息窗口。如果用户选择不接电话,那么,系统就会调用applicationDidBecomeActive方法。
发表评论
-
iOS程序运行生命周期
2015-11-10 09:05 964iOS程序运行生命周期 在文件AppDele ... -
iOS开发系列--IOS程序开发概览
2015-11-10 07:32 1179iOS开发系列--IOS程序开发概览 概览 ... -
2015年11月Xcode7.1(7B91b)打包发布苹果iOS应用指南
2015-11-09 18:29 108782015年11月Xcode7.1(7B91b) ... -
self.navigationController pushViewController执行不成功
2015-11-06 08:28 1610self.navigationControlle ... -
ios NSString format 保留小数点 float double
2015-11-05 17:37 2932ios NSString format 保留小数点 f ... -
自定义 URL Scheme 完全指南
2015-11-04 16:21 900自定义 URL Scheme 完全指南 转载 htt ... -
UIViewController生命周期方法viewDidLoad、viewWillAppear和viewDidAppear
2015-11-01 12:29 2950UIViewController生命周期 ... -
关于self.view.window与viewDidLoad、viewWillAppear、viewDidAppear
2015-11-01 09:36 2537关于self.view.window与viewD ... -
UIScreen学习记录
2015-10-31 08:18 1056UIScreen学习记录 转载自 ... -
使用NSTimer和CGAffineTransformMakeRotation实现旋转动画
2015-10-29 11:53 1824使用NSTimer和CGAffineTransform ... -
【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】
2015-10-29 08:59 1023【原】iOSCoreAnimation动 ... -
iOS 在UILabel显示不同的字体和颜色
2015-10-27 08:07 1555在项目开发中,我们经常会遇到在这样一种情形:在一个UI ... -
UISlider滑动条的属性介绍以及于标签联合使用实时显示变动值
2015-10-27 08:06 1251UISlider滑动条的属性 ... -
关于使用DSLTableView下拉刷新数据遇到的问题
2015-10-23 21:17 939关于使用DSLTableView下 ... -
使用AdSupport.framework生成IDFA唯一标识符
2015-10-23 17:29 4706使用AdSupport.framework生成IDFA ... -
AppDelegate的详解
2015-10-22 17:51 677AppDelegate的详解 ... -
iOS开发问题集锦
2015-10-22 13:06 5241. Xcode开发连真机运行报错Please ver ... -
iOS 对象属性参数名定义的注意事项不能以alloc,new,copy,mutableCopy 作为开头命名
2015-10-21 15:41 1324property's synthesized g ... -
iOS-自定义的画圆或弧的UIView
2015-10-21 14:20 2652iOS-自定义的画圆或弧的UIView Cu ... -
iOS自定义的模态提示对话框
2015-10-20 14:27 6472iOS自定义的模态提示对话框 基本思路: 1.创建 ...
相关推荐
iphone 生命 周 期 详 解
一张图,详细介绍了iPhone程序的生命周期
IOS程序的生命周期分析,对程序的流程进行详细的分析!
iPhone应用程序编程指南-中文版 pdf iPhone应用程序编程指南-中文版 pdf iPhone应用程序编程指南-中文版 pdf
iPhone应用程序编程指南iPhone应用程序编程指南iPhone应用程序编程指南
iPhone应用程序编程指南(中文版)iPhone应用程序编程指南(中文版)iPhone应用程序编程指南(中文版)iPhone应用程序编程指南(中文版)iPhone应用程序编程指南(中文版)
《Tapworthy: Designing Great iPhone Apps》(中文《触动人心:设计优秀的iPhone应用》)。可能你设计网站产品或软件界面早已得心应手,可是遇到了iPhone,却感觉无从下手。无论你是产品经理、设计师、创业者还是...
iphone应用程序开发面试常见问题及答案。
delegate和生命周期,简单明了,看了就懂
本书能帮助你理解如何设计iPhone应用,要创建一款触动人心的应用,需要如何去综合思考设计、心理、文化、人体工程和可用性问题。在书中,你会看到大量的真实应用的设计实例和思考过程。除大量实例外,本书用通俗易懂...
iPhone应用、iPhone应用用户体验、用户体验的设计实战与案例
资源名称:苹果官方iPhone应用高级开发课程(16集)资源目录:【】[iPhone应用开发高级课程]01.破冰课程【】[iPhone应用开发高级课程]02.高效iPhone应用开发 1【】[iPhone应用开发高级课程]03.高效iPhone应用开发 2...
iPhone 应用界面设计资源,非常好啊哈哈
开发ios必须的书本之一,还有两本是《iPhone开发基础教程_2009.04_(美)Dave Mark, Jeff LaMarche著》 和《iPhone应用程序开发指南》,希望对你有帮助。
一个iphone聊天应用程序,服务端用的php搭建,实现两者之间的通信。
触动人心设计优秀的iphone应用,Josh Clark is a designer, developer, and author who helps creative people clear technical hassles to share their ideas with the world. As both speaker and consultant, he...
iPhone应用用户体验设计实践与案例.最新版!!
[Wrox] C#开发iPhone应用实战 - 使用MonoTouch和.NET/C# [Wrox] Professional iPhone Programming with MonoTouch and .NET/C# (E-Book) [出版日期]2010年07月13日 [图书页数] 384页[图书语言] 英语[图书格式] PDF...
【iphone应用开发】Iphone应用开发之五: UIScrollView的详细讲解
iphone应用教程iphone应用教程iphone应用教程iphone应用教程iphone应用教程