UIApplication单例
什么是UIApplication?
UIApplication对象是应用程序的象征.
每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它是一个单例对象.
一个iOS程序启动后创建的第一个对象就是UIApplication对象
我们只能通过[UIApplication sharedApplication]获得这个单例对象,不能够手动去创建它.
UIApplication作用:
利用UIApplication对象,能进行一些应用级别的操作.
1 可以设置应用程序图标右上角的红色提醒数字
2 设置联网指示器的可见性
3 可以设置应用程序的状态栏
4 进行应用之间的跳转.
模仿UIApplication单例.
程序一启动就创建创建对象.
创建的对象只能通过share的方式获取对象.
不能够进行alloc 操作,当执行alloc时, 程序发生崩溃
代码实现
5 程序一启动的时候就创建对象.
当类被加载到内存的时候就会调用load的方法,它会比main优先调用
static Persion *_instance;
+(void)load{
想要保存创建的对象, 要用成员属性,但是现在是类方法, 没有办法访问成员属性.
所以搞了一个static的静态变量进行保存
创建对象
_instance = [[self alloc] init];
}
6 保证调用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];
}
7 通过share方式获取对象
+(instancetype)sharePersion{
return _instance
}
什么是UIApplication?
UIApplication对象是应用程序的象征.
每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它是一个单例对象.
一个iOS程序启动后创建的第一个对象就是UIApplication对象
我们只能通过[UIApplication sharedApplication]获得这个单例对象,不能够手动去创建它.
UIApplication作用:
利用UIApplication对象,能进行一些应用级别的操作.
1 可以设置应用程序图标右上角的红色提醒数字
2 设置联网指示器的可见性
3 可以设置应用程序的状态栏
4 进行应用之间的跳转.
模仿UIApplication单例.
程序一启动就创建创建对象.
创建的对象只能通过share的方式获取对象.
不能够进行alloc 操作,当执行alloc时, 程序发生崩溃
代码实现
5 程序一启动的时候就创建对象.
当类被加载到内存的时候就会调用load的方法,它会比main优先调用
static Persion *_instance;
+(void)load{
想要保存创建的对象, 要用成员属性,但是现在是类方法, 没有办法访问成员属性.
所以搞了一个static的静态变量进行保存
创建对象
_instance = [[self alloc] init];
}
6 保证调用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];
}
7 通过share方式获取对象
+(instancetype)sharePersion{
return _instance
}