ios关联启动_iOS程序启动原理---iOS-Apple苹果官方文档翻译

★如果设置了主xib文件(在Info.plist中指定 ,key是NSMainNibFile),就会在主xib文件中 寻找UIApplication和连接它的delegate。因 此在主xib文件中,File’s Owner必须 为UIApplication(或子类),并且建立一个遵 守UIApplicationDelegate的delegate对象, 建立UIApplication和delegate对象的关联关系四大对象关系图iOS中的mvcUIApplication★UIApplication是应用程序的核心,每一个程序在运行期必须 有UIApplication(或子类)的一个实例(有且仅有一个),通 过[UIApplication sharedApplication]可以得到这个单例实例 的指针★UIApplication帮助管理应用程序的生命周期,而它通过delegate来履行这个任务★UIApplication可以接收事件,把所有用户事件都放入队列,逐个 处理,它会发送当前事件给一个合适的目标控件进行处理。它还将部分事件转给delegate对象来处理,delegate可处理的事件包括:应用程 序的生命周期事件(如程序启动和关闭)、系统事件(如来电)UIApplication★[UIApplication sharedApplication].windows:在本应用中打开的UIWindow列表,这样就可以接触应用中的任何一个UIView对象★[UIApplication sharedApplication].keyWindow:用来接收键盘以及非触摸类的消息事件的UIWindow,而且程序中每个时刻只能有一个UIWindow是keyWindow。如果某个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方法,代理在这个方 法内可以进行释放内存的操作以防止操作系统强制终止应用程序的运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值