iOS程序启动原理

iOS程序启动原理



iOS程序启动原理

技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong


 
iOS应用程序运行流程




UIApplicationMain
 main.mmain函数中执行了UIApplicationMain这个方法,这 是ios程序的入口点 
intUIApplicationMain(intargc,char*argv[], NSString *principalClassName, NSString *delegateClassName) 
 argcargv:ISO C标准main函数的参数,直接传递 给UIApplicationMain进行相关处理便可 
 principalClassName:指定应用程序类,该类必须 是UIApplication(或子类)。若是为nil,则用UIApplication类 做为默认值 
 delegateClassName:指定应用程序类的代理类,该类必须遵 守UIApplicationDelegate协议 

UIApplicationMain
 此函数会根据principalClassName建立UIApplication 对象,根据delegateClassName建立一个delegate对象 ,并将该delegate对象赋值给UIApplication对象中 的delegate属性
 UIApplication对象会依次给delegate对象发送不一样的 消息,接着会创建应用程序的main runloop(事件循环) ,进行事件的处理(首先会调用delegate对象的
application:didFinishLaunchingWithOptions:)
 程序正常退出时这个函数才返回。若是进程要被系统强制 杀死,通常这个函数还没来得及返回进程就终止了


 若是设置了主xib文件(在Info.plist中指定 ,keyNSMainNibFile),就会在主xib文件中 寻找UIApplication和链接它的delegate。因 此在主xib文件中,File’s Owner必须 为UIApplication(或子类),而且创建一个遵 守UIApplicationDelegatedelegate对象, 创建UIApplicationdelegate对象的关联关系
四大对象关系图


iOS中的mvc

 

UIApplication
 UIApplication是应用程序的核心,每个程序在运行期必须 有UIApplication(或子类)的一个实例(有且仅有一个),通 过[UIApplication sharedApplication]能够获得这个单例实例 的指针
 UIApplication帮助管理应用程序的生命周期,而它经过delegate 来履行这个任务
 UIApplication能够接收事件,把全部用户事件都放入队列,逐个 处理,它会发送当前事件给一个合适的目标控件进行处理。它还将部分 事件转给delegate对象来处理,delegate可处理的事件包括:应用程 序的生命周期事件(如程序启动和关闭)、系统事件(如来电)


UIApplication
 [UIApplication sharedApplication].windows: 在本应用中打开的UIWindow列表,这样就能够接触应用
中的任何一个UIView对象
 [UIApplication sharedApplication].keyWindow: 用来接收键盘以及非触摸类的消息事件的UIWindow,而
且程序中每一个时刻只能有一个UIWindowkeyWindow 若是某个UIWindow内部的文本框不能输入文字,多是 由于这个UIWindow不是keyWindow

下面是这个类的一些功能:
1.设置icon上的数字图标

//设置主界面icon上的数字图标,在2.0中引进, 缺省为0

[UIApplicationsharedApplication].applicationIconBadgeNumber = 4;
2.
设置摇动手势的时候,是否支持redo,undo操做

//
摇动手势,是否支持redo undo操做。

//3.0
之后引进,缺省YES

[UIApplicationsharedApplication].applicationSupportsShakeToEdit =
YES;

3.判断程序运行状态

//判断程序运行状态,在2.0之后引入

/*

UIApplicationStateActive,

UIApplicationStateInactive,

UIApplicationStateBackground

*/

if([UIApplicationsharedApplication].applicationState ==UIApplicationStateInactive){

NSLog(@"
程序在运行状态");

}
4.
阻止屏幕变暗进入休眠状态

//
阻止屏幕变暗,慎重使用,缺省为no 2.0

[UIApplicationsharedApplication].idleTimerDisabled =YES;

(慎重使用本功能,由于很是耗电)
5.
显示联网状态

//
显示联网标记 2.0
[UIApplicationsharedApplication].networkActivityIndicatorVisible =YES;


6.map上显示一个地址

NSString* addressText =
@"1 Infinite Loop, Cupertino, CA 95014";

// URL encode the spaces

addressText= [addressTextstringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

NSString* urlText = [NSStringstringWithFormat:@"
http://maps.google.com/maps?q=%@", addressText];

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlText]];


7.发送电子邮件

NSString *recipients =
@"mailto:first@example.com?cc=second@example.com,third@example.com&subject=Hello from California!";

NSString *body =
@"&body=It is raining in sunny California!";

NSString *email = [NSStringstringWithFormat:
@"%@%@", recipients, body];

email = [emailstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:email]];
8.打电话到一个号码

// Call Google 411
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"tel://8004664411"]];


9.发送短信

// Text to Google SMS
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"sms://466453"]];


10.打开一个网址

// Lanuch any iPhone developers favsite
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"http://itunesconnect.apple.com"]];






UIApplicationDelegate
 在开发过程当中,UIApplication是一个很是重要的全局对象。但在实 际编程中咱们并不直接和UIApplication对象打交道,而是和其代理 打交道,它的代理必须遵照UIApplicationDelegate协议,代理􏰀 供了相关的生命周期方法来处理应用程序的系统事件
>
  ios设备的内存极其优先,若是为app分配了太多内存,操做系统会终 止app的运行,在UIApplication接收到这个事件后它会调用代理 的applicationDidReceiveMemoryWarning方法,代理在这个方 法内能够进行释放内存的操做以防止操做系统强制终止应用程序的运行
>
 
>
 UIApplicationDelegat
>
  ios并非多任务的操做系统,因此app很容易受到打扰。好比一个来 电可能致使app失去焦点,若是这个时候接听了电话,那么app会自动 终止运行 
>
  还有不少其它相似的事件会致使app失去焦点
>
  app失去焦点前会调用代理的applicationWillResignActive 
>
  app再次获取焦点时会调用代理的applicationDidBecomeActive 
>
  在运行app锁屏会调用代理的applicationWillResignActive 
>
  屏幕被解锁时,会调用代理的applicationDidBecomeActive
>
 UIApplicationDelegate生命周期方法说明
1- (void)applicationWillResignActive:(UIApplication *)application
> / /
从主动到非活动状态的应用程序时发送。这可致使产生某些类型的临时中断(如传入电话呼叫或SMS消息) ,或者当用户退出应用程序,它开始过渡到的背景状态。
>     / /
使用此方法暂停正在进行的任务,禁用定时器,踩下油门,OpenGL ES的帧速率。游戏应该使用这种方法来暂停游戏。
>
 
>
 2- (void)applicationDidBecomeActive:(UIApplication *)applicatio
>
 说明:当应用程序入活动状态执行,这个恰好跟上面那个方法相反
>
 3- (void)applicationDidEnterBackground:(UIApplication *)application
>
 说明:当程序被推送到后台的时候调用。因此要设置后台继续运行,则在这个函数里面设置便可
> / /
使用这个方法来释放共享资源,保存用户数据,废止定时器,并存储足够的应用程序状态信息的状况下被终止后,将应用程序恢复到目前的状态。
>     / /
若是你的应用程序支持后台运行,这种方法被调用,而不是applicationWillTerminate :当用户退出。
>
 
>
 4- (void)applicationWillEnterForeground:(UIApplication *)applicatio
>
 说明:当程序从后台将要从新回到前台时候调用,这个恰好跟上面的那个方法相反。
>
 5- (void)applicationWillTerminate:(UIApplication *)applicatio
>
 //不支持多任务的时候调用
>
>
 说明:当程序将要退出是被调用,一般是用来保存数据和一些退出前的清理工做。这个须要要设置UIApplicationExitsOnSuspend的键值(自动设置)。
>
 6- (void)applicationDidReceiveMemoryWarning:(UIApplication *)applicatio
>
 说明:iPhone设备只有有限的内存,若是为应用程序分配了太多内存操做系统会终止应用程序的运行,在终止前会执行这个方法,一般能够在这里进行内存清理工做防止程序被终止
>
 7- (void)applicationSignificantTimeChange:(UIApplication*)applicatio
>
 说明:当系统时间发生改变时执行
>
 8- (void)applicationDidFinishLaunching:(UIApplication*)applicatio
>
 说明:当程序载入后执行
>
 9- (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFram
>
 说明:当StatusBar框将要变化时执行
>
 10- (void)application:(UIApplication*)application willChangeStatusBarOrientation
> (UIInterfaceOrientation)newStatusBarOrientatio
> duration:(NSTimeInterval)duratio
>
 说明:当StatusBar框方向将要变化时执行
>
 11- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)ur
>
 说明:当经过url执行
>
 12- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientatio
>
 说明:当StatusBar框方向变化完成后执行
>
 13- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFram
>
 说明:当StatusBar框变化完成后执行
>
 
>
 UIWindow
>
  UIWindow是一种特殊的UIView,一般在一个app中只会有一 个UIWindow,但能够手动建立多个UIWindow 
>
  UIWindow的主要做用: 
>
 1 供一个区域来显示视
>
 2 将事件分发给视
>
 3 UIViewController协同工做,方便完成设备方向旋转的支持
>
 
>
 UIWindow
>
 添加UIViewUIWindow中两种常见方式:
>
 1 addSubview:直接将UIView添加到UIWindow中,程序负责维 护UIView的生命周期以及刷新,但并不会理会UIView对应 的UIViewController
>
 2 rootViewController:自动将UIViewController对应的UIView 添加到UIWindow中,同时负责维护UIViewControllerUIView的 生命周期
>
  经常使用方
>
 1 makeKeyWindow:让当前UIWindow变成keyWindo
>
 2 makeKeyAndVisible:让当前UIWindow变成keyWindow,并显示出来
>
 
>
 UIViewControlle
>
  UIViewController属于MVC模型中的C(Controller),说的更具体 点它是一个视图控制器,管理着一个视图(UIView)
>
  一个UIViewController应该只管理一个view hierarchy,一般 来讲一个完整的view hierarchy指的是占满整一个屏幕。而不少ap p满屏中会有各个区域分管不一样的功能,一些开发者喜欢直接新建一 个UIViewController和一套相应的view来完成所要的功能,这样 作彻底不符合Apple􏰀供的设计规范UIViewControllerview
 能够利用xib文件来初始化view; 也可使用自定义view,那就必须覆盖loadView方法来建立这个viewUIViewControllerviewlazy loading,当你访 问其view属性时,view会从xib文件载入或者经过代码创 建(覆盖loadView方法,自定义其view hierarchy)★ 能够用isViewLoaded方法判断一个UIViewController view是否已经被加载UIViewController生命周期方法的
r>
  view加载后调用viewDidLoad,这里能够进行一些数据的请求或加载,用来更新界面view将要被加入view hierarchy时调用viewWillAppear,完成 加入时调用viewDidAppear view将要从view hierarchy中移除时调用viewWillDisappear ,完成移除时调用viewDidDisappear  当内存紧张时, 调用didReceiveMemoryWarning,其默认实现是如 果当前UIViewControllerviewsuperviewnil,则将view释 放且调用viewDidUnload, viewDidUnload中你能够进行后继的内 存清理工做(主要是界面元素的释放,当再次加载的时候须要重建) (这里的view是指UIViewController内部的view属性) 工程名-Info.plist
 创建一个工程后,会在Supporting files文件夹下看到一个工程名 -Info.plist的文件,该文件对工程作一些运行期的配置,很重要, 不能删除  在旧版本Xcode建立的工程中,这个配置文件的名字就叫Info.plist
 若是使用文本编辑器打开这个文件,会发现这是一个XML格式的文本 文件,通常不用文本编辑器直接编辑这个文件,而是经过Xcode编辑
 项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的 本地化相关 工程名-Info.plist
 常见属性(红色部分是用文本编辑器打开时看到的key)
 Localiztion native development region(CFBundleDevelopmentRegion)-本地化相关  Bundle display name(CFBundleDisplayName)-程序安装后显 示的名称,限制在10-12个字符,若是超出,将被显示缩写名称
 Icon file(CFBundleIconFile)-app图标名称,通常为Icon.png
 Bundle version(CFBundleVersion)-应用程序的版本号,每次 往App Store上发布一个新版本时,须要增长这个版本号
 Main nib file base name(NSMainNibFile)-nib文件的名称
 Bundle identifier(CFBundleIdentifier)-项目的惟一标识, 部署到真机时用到 工程名-Prefix.pch
 通常来讲,能够将项目中常常用到的一些头文件放在这里来import, 整个项目均可以访问这个文件的内容,这样既节省了手动添加import的时间,也有助于加速编译
 在这里定义的宏,整个项目均可以访问 pch文件中添加下列预处理指令,而后在项目中使用Log(...)来输出 日志信息,就能够在发布应用的时候,一次性将NSLog语句移除(在调 试模式下,才有定义DEBUG) #ifdef DEB
r> #define Log(...) NSLog(__VA_ARGS_
r>
 #el
r> #define
 Log(...) /*
r>
 #end
r>
 r> 
开发iOS6的注意
 iOS6新特性:auto layout属性,此属性只针iOS6及以上版本★ iOS6如下版本运行时可能会出现的异常信息:Terminating app due to uncaug
r> excepti
r> ‘NSInvalidUnarchiveOperationException
r> reason: ‘Could not instantiate cla
r> named NSLayoutConstrain
r>
  具体场景:Xcode 4.5 选择iPhone/iPad 5.0/5.1 Simulator(模拟器)★ 解决办法:须要关闭storyboardxib界面文 件的Use Autolayout 选项,这是由于AutoLayout特性是iOS 6新增长的,在以前的 5.0/5.1 Simulator模拟器中不支持nib文件

★ nib文件是iOS中用来述视图的xml格式的文本文件, 如今拓展名为xib,用Interface Builder打开能够 生成图形界面式的
 某书中著名的一句话:Interface Builder把窗口、 菜单栏以及窗口上的各类控件对象都冻结在一个NIB 文件里;程序运行时,这些对象将会苏醒
 加载Nib文件时,会将文件中的述转化为应用程序可 以操做的真正对象,全部在Interface Builder中建 立的关联(如File’s Owner和其余对象之间的关联) 都可以在运行时从新创建起来 nib文件
★ nib文件是指应用程序一启动就装载的nib文件,它 的File’s Owner必定要是个UIApplication(或子类) ,而且新建一个delegate对象、创建UIApplication delegate对象的关联nib文件的设置方法r> Info.plist经过NSMainNibFile这个key能够设置主nib文件nib文件的设置方法
r>
 SummaryMain Interface
r>
 UIView★ UIViewiOS中界面元素的基础,全部的界面元素都继承它,能够说 在iPhone中你能看到的、摸到的,都是UIView★ UIView的基本功
r>
 1 绘图和动画(CALayerCAAnimation实现
r>
 2 事件处理(继承了UIRsponde
r>
  一个UIView能够包含和管理若干个子视图,决定着子视图的位置和大小UIView经常使用属性
★ frame父视图坐标系中的位置(CGPoint origin)和大小(CGSize size)
★ bounds本视图坐标系中的位置(CGPoint originxy永远为0)和大 小(CGSize size)
★ center
视图的中点在父视图坐标系中的
r>
  UIView*superview
r>
  NSArray*subviews全部的子
r>
  UIWindow *window 当前视图所在的
r>
  BOOLuserInteractionEnabledYES表明接收触摸事件  在父视图坐标系中,父视图的左上角为坐标原点(0,
r>
  在本视图坐标系中,本视图的左上角为坐标原点(0, 0)UIKit坐标系
r> (0,0)View1View2的父视图 View2.frame = {x=70,y=50,width=60,height=40} View2.bounds = {x=0,y=0,width=60,height=40} View2.center = (x=100, y=70)• UIKit框架中的坐标系都如左图所示,视图的 左上角为原点(0,0),x轴向右正向延伸,y 轴向下正向延伸• View3framex,y
r>
 1 若是绿色视图是View3的父视图,那么View3x,y为红色箭头的
r> 2
 若是View1View3的父视图,那么View3x,y为蓝色箭头的宽度UIView经常使用方法和属性★ -(void)removeFromSuperview从父视图中移除(当前视图的计数器会-1)★ -(void)addSubview:(UIView*)view添加一个子视图(新添加的子视图在父视图的最上面,子视图的 计数器会+1)★ -(UIView*)viewWithTag:(NSInteger)tag 根据tag找到对应的子视图iOS关闭键盘的方法r>  调用UIViewendEditing方法,例如[self.viewendEditing:YES]; 成功关闭键盘的条件:self.view或者其子视图是第一响应者iOS关闭键盘的方法2

递归找到第一响应者,让它把键盘给退
r> [[self findFirstResponder:self.view]resignFirstResponder]; - (UIView*)findFirstResponder:(UIView*)view {for ( UIView *childView in view.subviews
r> { // 遍历子视
r>
 if ( [childViewrespondsToSelector:@selector(isFirstResponder)] && [childView isFirstResponder] ) {return childView; // 若是childView是第一响应
r>
 }      UIView *result = [self findFirstResponder:childView
r> if (result) return result
r> }return nil;r>

© chenyilong. Powered by Postach.iohtml

 

 

 
9页注释
 


下面是这个类的一些功能:
1.设置icon上的数字图标

//设置主界面icon上的数字图标,在2.0中引进, 缺省为0

[UIApplicationsharedApplication].applicationIconBadgeNumber = 4;
2.
设置摇动手势的时候,是否支持redo,undo操做

//
摇动手势,是否支持redo undo操做。

//3.0
之后引进,缺省YES

[UIApplicationsharedApplication].applicationSupportsShakeToEdit =
YES;

3.判断程序运行状态

//判断程序运行状态,在2.0之后引入

/*

UIApplicationStateActive,

UIApplicationStateInactive,

UIApplicationStateBackground

*/

if([UIApplicationsharedApplication].applicationState ==UIApplicationStateInactive){

NSLog(@"
程序在运行状态");

}
4.
阻止屏幕变暗进入休眠状态

//
阻止屏幕变暗,慎重使用,缺省为no 2.0

[UIApplicationsharedApplication].idleTimerDisabled =YES;

(慎重使用本功能,由于很是耗电)
5.
显示联网状态

//
显示联网标记 2.0
[UIApplicationsharedApplication].networkActivityIndicatorVisible =YES;


6.map上显示一个地址

NSString* addressText =
@"1 Infinite Loop, Cupertino, CA 95014";

// URL encode the spaces

addressText= [addressTextstringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

NSString* urlText = [NSStringstringWithFormat:@"
http://maps.google.com/maps?q=%@", addressText];

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlText]];


7.发送电子邮件

NSString *recipients =
@"mailto:first@example.com?cc=second@example.com,third@example.com&subject=Hello from California!";

NSString *body =
@"&body=It is raining in sunny California!";

NSString *email = [NSStringstringWithFormat:
@"%@%@", recipients, body];

email = [emailstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:email]];
8.打电话到一个号码

// Call Google 411
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"tel://8004664411"]];


9.发送短信

// Text to Google SMS
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"sms://466453"]];


10.打开一个网址

// Lanuch any iPhone developers favsite
ios

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"http://itunesconnect.apple.com"]];




 
11页

UIApplicationDelegate生命周期方法说明

1- (void)applicationWillResignActive:(UIApplication *)application
/ /
从主动到非活动状态的应用程序时发送。这可致使产生某些类型的临时中断(如传入电话呼叫或SMS消息) ,或者当用户退出应用程序,它开始过渡到的背景状态。
     / /
使用此方法暂停正在进行的任务,禁用定时器,踩下油门, OpenGL ES的帧速率。游戏应该使用这种方法来暂停游戏。

2- (void)applicationDidBecomeActive:(UIApplication *)application
说明:当应用程序入活动状态执行,这个恰好跟上面那个方法相反
3- (void)applicationDidEnterBackground:(UIApplication *)application
说明:当程序被推送到后台的时候调用。因此要设置后台继续运行,则在这个函数里面设置便可
/ /
使用这个方法来释放共享资源,保存用户数据,废止定时器,并存储足够的应用程序状态信息的状况下被终止后,将应用程序恢复到目前的状态。
     / /
若是你的应用程序支持后台运行,这种方法被调用,而不是applicationWillTerminate :当用户退出。

4- (void)applicationWillEnterForeground:(UIApplication *)application
说明:当程序从后台将要从新回到前台时候调用,这个恰好跟上面的那个方法相反。
5- (void)applicationWillTerminate:(UIApplication *)application
//不支持多任务的时候调用

说明:当程序将要退出是被调用,一般是用来保存数据和一些退出前的清理工做。这个须要要设置UIApplicationExitsOnSuspend的键值(自动设置)。
6- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
说明:iPhone设备只有有限的内存,若是为应用程序分配了太多内存操做系统会终止应用程序的运行,在终止前会执行这个方法,一般能够在这里进行内存清理工做防止程序被终止
7- (void)applicationSignificantTimeChange:(UIApplication*)application
说明:当系统时间发生改变时执行
8- (void)applicationDidFinishLaunching:(UIApplication*)application
说明:当程序载入后执行
9- (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame
说明:当StatusBar框将要变化时执行
10- (void)application:(UIApplication*)application willChangeStatusBarOrientation:
(UIInterfaceOrientation)newStatusBarOrientation
duration:(NSTimeInterval)duration
说明:当StatusBar框方向将要变化时执行
11- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url
说明:当经过url执行
12- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
说明:当StatusBar框方向变化完成后执行
13- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame
说明:当StatusBar框变化完成后执行
web


UIApplicationDelegate生命周期方法说明
1- (void)applicationWillResignActive:(UIApplication *)application
/ /
从主动到非活动状态的应用程序时发送。这可致使产生某些类型的临时中断(如传入电话呼叫或SMS消息) ,或者当用户退出应用程序,它开始过渡到的背景状态。
      / /
使用此方法暂停正在进行的任务,禁用定时器,踩下油门,OpenGL ES的帧速率。游戏应该使用这种方法来暂停游戏。
 
 2- (void)applicationDidBecomeActive:(UIApplication *)applicatio
 说明:当应用程序入活动状态执行,这个恰好跟上面那个方法相反
 3- (void)applicationDidEnterBackground:(UIApplication *)application
 说明:当程序被推送到后台的时候调用。因此要设置后台继续运行,则在这个函数里面设置便可
/ /
使用这个方法来释放共享资源,保存用户数据,废止定时器,并存储足够的应用程序状态信息的状况下被终止后,将应用程序恢复到目前的状态。
      / /
若是你的应用程序支持后台运行,这种方法被调用,而不是applicationWillTerminate :当用户退出。
 
 4- (void)applicationWillEnterForeground:(UIApplication *)applicatio
 说明:当程序从后台将要从新回到前台时候调用,这个恰好跟上面的那个方法相反。
 5- (void)applicationWillTerminate:(UIApplication *)applicatio
 //不支持多任务的时候调用

 说明:当程序将要退出是被调用,一般是用来保存数据和一些退出前的清理工做。这个须要要设置UIApplicationExitsOnSuspend的键值(自动设置)。
 6- (void)applicationDidReceiveMemoryWarning:(UIApplication *)applicatio
 说明:iPhone设备只有有限的内存,若是为应用程序分配了太多内存操做系统会终止应用程序的运行,在终止前会执行这个方法,一般能够在这里进行内存清理工做防止程序被终止
 7- (void)applicationSignificantTimeChange:(UIApplication*)applicatio
 说明:当系统时间发生改变时执行
 8- (void)applicationDidFinishLaunching:(UIApplication*)applicatio
 说明:当程序载入后执行
 9- (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFram
 说明:当StatusBar框将要变化时执行
 10- (void)application:(UIApplication*)application willChangeStatusBarOrientation
(UIInterfaceOrientation)newStatusBarOrientatio
duration:(NSTimeInterval)duratio
 说明:当StatusBar框方向将要变化时执行
 11- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)ur
 说明:当经过url执行
 12- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientatio
 说明:当StatusBar框方向变化完成后执行
 13- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFram
 说明:当StatusBar框变化完成后执行


//转载请注明出处--本文永久连接:http://www.cnblogs.com/ChenYilong/p/3496033.html
相关文章
相关标签/搜索