IOS开发概述-05.UIApplication

1.UIApplication概述

  • UIApplication对象是应用程序的象征
  • 每一个应用都有自己的UIApplication对象,而且是单例的
  • 通过[UIApplication sharedApplication]可以获得这个单例对象
  • 一个iOS程序启动后创建的第一个对象就是UIApplication对象
  • 利用UIApplication对象,能进行一些应用级别的操作
    • 应用程序图片的提醒数字
    • 联网状态
    • 设置状态栏
    • 打开资源,电话,网页,发短信

2.UIApplication单例对象的创建

  • UIApplication单例对象只能通过[UIApplication sharedApplication]方法获取,且只被创建一次,不能通过alloc方法重新创建
// 获取UIApplication单例对象
    UIApplication *app = [UIApplication sharedApplication];
    UIApplication *app1 = [UIApplication sharedApplication];
    UIApplication *app2 = [UIApplication sharedApplication];
    NSLog(@"%p-%p-%p",app,app1,app2);
    // 打印结果:0x7fa8aa704e00-0x7fa8aa704e00-0x7fa8aa704e00,指向同一块存储空间,证明只被创建了一次
    // 不能通过alloc方法创建单例对象,程序会直接崩
    // 报错reason: 'There can only be one UIApplication instance.'
    UIApplication *app3 = [[UIApplication alloc] init];

3.利用UIApplication对象进行应用级别的操作

  • 应用程序图片的提醒数字(常见使用场景QQ消息个数,微信信息,应用商店的软件更新等等)
    这里写图片描述这里写图片描述
    // 1.设置应用程序的消息提醒数字
    app.applicationIconBadgeNumber = 99;
// IOS 8以后需设置通知,需用户同意后才能显示消息提醒数字
    // 创建通知对象
    // 
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
    // 注册用户通知
    [app registerUserNotificationSettings:settings];
  • 联网状态设置
app.networkActivityIndicatorVisible = YES;

这里写图片描述
- 设置状态栏
- 系统默认情况下状态栏是由控制器管理的,但是在多层级复杂应用情况下,为了便于统一管理状态栏,我们一般使用Application控制

// 控制器设置状态栏
// 设置状态栏隐藏
-(BOOL)prefersStatusBarHidden{

    return YES;
}
// 设置状态栏样式
-(UIStatusBarStyle)preferredStatusBarStyle{

    return UIStatusBarStyleLightContent;
}
// UIApplication设置状态栏
// 必须先配置info.plist文件,添加配置View controller-based status bar appearance为NO(点击+号选择最后一个配置即可)
app
// 设置状态栏
app.statusBarHidden = YES;
// 设置状态栏样式
app.statusBarStyle = UIStatusBarStyleLightContent;// 设置状态栏文字为白色,默认是黑色
  • 利用application进行openURL操作
    // 打电话
    [app openURL:[NSURL URLWithString:@"tel://10086"]];
    // 发短信
    [app openURL:[NSURL URLWithString:@"sms://10086"]];
    // 发邮件
    [app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]];
    // 打开网页
    [app openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
    // 还可以打开其他应用程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值