首页 > 代码库 > 模仿UIApplication单例
模仿UIApplication单例
要求:程序一启动就创建创建对象.
创建的对象只能通过share的?方式获取对象.
不能够进行alloc 操作,当执?行alloc时, 程序发生崩溃
1.程序一启动的时候就创建对象.
当类被加载到内存的时候就会调用load的方法,它会比main优先调用
static Persion *_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 Persion instance." userInfo:nil]; //抛出异常 [exception raise]; } //保持系统的做法. return [super alloc];}
3.通过share方式获取对象
+(instancetype)sharePersion{ return _instance;}
模仿UIApplication单例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。