iOS UIApplication详解(单例、功能)
2017-07-24 14:27
309 查看
什么是UIApplication?
UIApplication对象是应用程序的象征.每个应用程序都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它是一个单例对象.
一个iOS程序启动后创建的第一个对象就是UIApplication对象
我们只能通过[UIApplication sharedApplication]获得这个单例对象,不能够手动去创建它.
UIApplication作用?
利用UIApplication对象,能进行一些应用级别的操作.可以设置应用程序图标右上角的红色提醒数字
设置联网指示器的可见性
可以设置应用程序的状态栏
进行应用之间的跳转.
仿照UIApplication创建一个单例
要求:程序一启动就创建对象.
创建的对象只能通过share的方式获取.
不能够进行alloc 操作,当执行 alloc时, 程序发生崩溃
1.程序一启动时就创建对象.
当类被加载到内存的时候就会调用load的方法,它会比main优先调用
static Person *_instance; +(void)load { /* 想要保存创建的对象, 要用成员属性,但是现在是类方法, 没有办法访问成员属性. 所以搞了一个static的静态变量进行保存 */ // 创建对象 _instance = [[self alloc] init]; }
2.保证调用alloc时会产生异常.
//重写系统的alloc方法 +(instancetype)alloc { /*当调用alloc方法时,先查看一下_instance有没有值,如果已经有值的话,直接抛出异常.*/ if(_instance) { NSException *exception = [NSException exceptionWithName:@"NSInternalInconsistencyException"reason:@"There can only be one Person instance." userInfo:nil]; //抛出异常 [exception raise]; } //保持系统的做法. return [super alloc]; }
3.通过share方式获取对象
+(instancetype)sharePersion { return _instance; }
UIApplication功能
1.设置应用提醒数字//获取UIApplication对象 UIApplication *app = [UIApplication sharedApplication]; //在设置之前, 要注册一个通知,从ios8之后,都要先注册一个通知对象.才能够接收到提醒. UIUserNotificationSettings *notice =[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil]; //注册通知对象 [app registerUserNotificationSettings:notice]; //设置提醒数字 app.applicationIconBadgeNumber = 10;
2.设置连网状态
app.networkActivityIndicatorVisible = YES;
3.设置状态栏
应用程序的状态栏,默认是交给控制器来管理的. 控制器提供的方法,可以直接重写这个方法
//在控制器当中设置状态栏样式 -(UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; } //隐藏状态栏,通过控制器的方式同样实现方法: //返回NO时为不隐藏 //返回YES时为显 -(BOOL)prefersStatusBarHidden { return NO; } /* 通常在开发当中都是应用程序来管理状态栏的,来做统一管理,不然的话会有很多个控制器,会非常的麻烦. 想要让应用程序管理状态栏,要在info.plist当中进行配置, 添加一个key值:是最后一个,View controller-based status bar appearance 设置为NO.就是应用程序来管理了. */
通过UIApplication来管理状态.
//1.获取UIApplication UIApplication *app = [UIApplication sharedApplication]; //2.设置状态栏样式. app.statusBarStyle = UIStatusBarStyleLightContent; //3.设置状态的隐藏 app.statusBarHidden = YES;
4.跳转网页等
UIApplication *app = [UIApplication sharedApplication]; //URL:协议头://域名 应用程序通过协议头的类型,去打开相应的软件. NSURL *url =[NSURL URLWithString:@"http://www.baidu.com"]; [app openURL:url]; //打电话 [application openURL:[NSURL URLWithString:@"tel://10086"]]; //发短信 [app openURL:[NSURL URLWithString:@"sms://10086"]];
相关文章推荐
- iOS-UIApplication sharedApplication 详解
- UIApplicationDelegate详解 -- iOS应用程序周期
- iOS开发-UIApplicationMain 函数的功能
- iOS之UI--使用SWRevealViewController实现侧边菜单功能详解实例
- UIApplication sharedApplication 详解—IOS
- 【深入浅出IOS开发】UIApplication和UIApplicationDelegate详解
- iOS之UI--使用SWRevealViewController 实现侧边菜单功能详解实例
- iOS之UI--使用SWRevealViewController实现侧边菜单功能详解实例
- 【iOS】第01讲 UIView/UIViewController/UIApplication详解
- iOS之UI--使用SWRevealViewController实现侧边菜单功能详解实例
- IOS 开发之UIApplicationDelegate详解
- iOS UIApplication功能十分强大的openURL方法
- ios--UI高级用事件实现简单截图功能
- iOS学习笔记 2 —— UIWindow及UIWindowLevel详解
- iOS开发学习之UIApplication
- 猫猫学IOS(二十一)UIApplication设置程序图标右上⾓红⾊数字_联⺴指⽰器等
- iOS 6编程--分割视图控制器(UISplitViewController)和Master-Detail Application模板
- iOS设备远程Push功能详解
- iOS开发 UILocalNotification 本地通知实现提醒功能
- App Inspector-iOS真机功能详解