UIApplication
-
什么是UIApplication?
UIApplication对象是应用程序的象征.每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它是一个单例对象.一个iOS程序启动后创建的第一个对象就是UIApplication对象我们只能通过[UIApplication sharedApplication]获得这个单例对象,不能够手动去创建它.
-
UIApplication作用?
利用UIApplication对象,能进行一些应用级别的操作.可以设置应用程序图标右上角的红色提醒数字设置联网指示器的可见性可以设置应用程序的状态栏,进行应用之间的跳转.
要求:程序一启动就创建创建对象.创建的对象只能通过share的方式获取对象.不能够进行alloc 操作,当执行alloc时, 程序发生崩溃
1.程序一启动的时候就创建对象.
当类被加载到内存的时候就会调用load的方法,它会比main方法优先调用
1
2
3
4
5
6
|
static Persion *_instance;
+ (void)load{
想要保存创建的对象, 要用成员属性,但是现在是类方法, 没有办法访问成员属性. 所以搞了一个static的静态变量进行保存
创建对象
_instance = [[self alloc] init];
}
|
2.保证调用alloc时会产生异常, 重写系统的是alloc方法
1
2
3
4
5
6
7
8
9
10
11
|
+(instancetype)alloc {
当调用alloc方法时,先查看一下_instance有没有值,如果已经有值的话,直接抛出异常.
if
(_instance) {
NSException *exception = [NSException exceptionWithName: @
"NSInternalInconsistencyException"
reason:
@
"There can only be one Persion instance."
userInfo:nil]; 抛出异常
[exception raise];
}
保持系统的做法.
return
[
super
alloc];
}
|
3.通过share方式获取对象
1
2
3
|
+ (instancetype)sharePersion {
return
_instance
}
|
UIApplication功能
设置应用提醒数字
1
2
3
4
5
6
7
8
|
获取UIApplication对象
UIApplication *ap = [UIApplication sharedApplication];
在设置之前, 要注册一个通知,从ios8之后,都要先注册一个通知对象.才能够接收到提醒. UIUserNotificationSettings *notice =
[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
注册通知对象
[ap registerUserNotificationSettings:notice];
设置提醒数字
ap.applicationIconBadgeNumber = 20;
|
跳转网页
1
2
3
4
5
6
|
UIApplication *ap = [UIApplication sharedApplication]; URL:协议头:
//域名 应用程序通过协议头的类型,去打开相应的软件.
打电话
发短信
UIApplication代理
应用程序的生命周期
应用程序的启动原理(重要) 程序启动时执行main函数,在main函数当中有以下操作.
程序完整启动流程 1.执行Main 2.执行UIApplicationMain函数. 3.创建UIApplication对象,并设置UIApplicationMain对象的代理.UIApplication的第三个参数就是UIApplication的名称,如果指定为nil,它会默认 为UIApplication.UIApplication的第四个参数为UIApplication的代理. 4.开启一个主运行循环.保证应用程序不退出. 5.加载info.plist.加载配置文文件.判断一下info.plist文件当中有没有Main storyboard file base name里面有没有指定storyboard文件,如果有就去加载info.plist文件,如果没有,那么应用程序加载完毕. 6.通知应用程序,调用代理方法 |