美文网首页
iOS开发之单例---模仿UIApplication

iOS开发之单例---模仿UIApplication

作者: 文达IOS | 来源:发表于2016-08-16 23:06 被阅读21次

    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];
    }
    
    以上就是关于UIApplication单例系统的实现原理,如有不同见解请留言,谢谢;本人菜鸟一枚,望各位路过大
    神不喜勿喷,希望大家有意见多多指正

    相关文章

      网友评论

          本文标题:iOS开发之单例---模仿UIApplication

          本文链接:https://www.haomeiwen.com/subject/yozpsttx.html