A:UIApplication 单例的三大特点
1、具有其他单例的特性,即内存中只存在一个对象
2、程序一启动的时候就会创建
3、外界无法调用alloc方法,一旦调用系统就会抛出异常,使程序崩溃
B:实战
1、首先创建一个Test的类,在头文件中声明外部调用方法
@interface Test : NSObject
+ (instancetype)shareTest;
@end
2、然后在.m文件里面实现
a、首先需要先声明静态变量
static Test *_instance = nil;
b、重写load方法
+ (void)load
{
//作用:加载类,会在每次程序启动的时候,会把所有的类加载进内存
_instance = [[self alloc] init];
}
C、实现公开的方法
+(instancetype)shareTest{
return _instance;
}
d、最重要的是重写alloc方法
+ (instancetype)alloc
{
//此时判断是否已经分配了内存
if (_instance) {
// 如果已经分配内存,抛异常,告诉外界不运用分配
NSException *excp = [NSException exceptionWithName:@"NSInternalInconsistencyException" reason:@"There can only be one Person instance." userInfo:nil];
[excp raise];
}
// 如果没有分配内存则调用父类方法开辟内存
return [super alloc];
}
网友评论