欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS 中UIApplication详解及实例

程序员文章站 2024-02-12 15:59:10
ios 中uiapplication详解及实例 以前刚学iphone开发时,觉得uiapplication这个东西特nb,特神秘,比如它居然能打开一个url,而且还是用一...

ios 中uiapplication详解及实例

以前刚学iphone开发时,觉得uiapplication这个东西特nb,特神秘,比如它居然能打开一个url,而且还是用一个很神秘的方法得到实例:

[uiapplication sharedapplication] 

它对我的神秘感一直保持到今天下午。今天下午负责ui设计的同事在设计,我没有素材,比较清闲,于是发个狠,专门看了一下uiapplication这个类。果然是难者不会,会者不难,看完之后,这个类的神秘感一下子没了。下面让我来揭开它的神秘面纱。

uiapplication,顾名思义,代表的是整个应用做的事,因此每个程序只能有一个,系统使用的是单例模式,就是上面的[uiapplication sharedapplication]来得到一个实例。这个单例实例是在系统启动时由main函数里面的uiapplicationmain方法生成,就是每个程序里都有的appdelegate,它实现了uiapplicationdelegate的protocol,也就是appdelegate的一个实例。每次通过[uiapplication sharedapplication]调用的就是它。

uiapplication在程序里的角色:它保存一个uiwindow对象序列,用来快速恢复views。它还有很多作用,不过我也不大清楚了。

下面来看看我们能用它来干什么:

一、远程提醒,就是push notification注册;

二、可以连接到uiundomanager;

三、检查能否打开某个url,并且打开url;这个功能可以配合应用的自定义url功能,来检测是否安装了某个应用。比如检测是否安装了淘宝的应用,可以用下面的代码:

nsurl *url = [nsurl urlwithstring:[nsstring stringwithformat:@"taobao://item.taobao.com/item.htm?id=12688928896"]]; 
// 判断当前系统是否有安装淘宝客户端 
  if ([[uiapplication sharedapplication] canopenurl:url]) { 
    // 如果已经安装淘宝客户端,就使用客户端打开链接 
    [[uiapplication sharedapplication] openurl:url]; 
  } 

四、注册local notification;

五、在后台运行以及从后台转为前台时的操作;

六、防止屏幕睡眠:

[[uiapplication sharedapplication].idletimerdisabled=yes; 

七、手动调整status bar的位置和状态,如设置为竖屏、横屏等;

八、设置badge number,就是图标右上角的数字;

九、每当应用联网时,在状态栏上会显示联网小菊花。uiapplication可以设置是否出现。

十。。。还有一些应用,不过那些更不常用,而且我也看不太懂。就写到这里吧。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!