模仿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
    }
    

results matching ""

    No results matching ""