美文网首页
模仿苹果方式单例

模仿苹果方式单例

作者: i大猫哥 | 来源:发表于2017-04-10 20:48 被阅读25次

    苹果单例实现特点:
    1.外界不能调用alloc方法,如果调用就抛异常。
    2.提供一个方法给外界调用,生成对象。
    3.内部创建一次单例,在程序启动的时候创建。(利用load方法)

    代码引用:

    #import "Singleton.h"
    
    @implementation Singleton
    
    // 静态变量
    static Singleton *_instance = nil;
    
    // 启动的时候创建对象(这个方法会在程序每次启动的时候,把类加载到内存中)
    +(void)load
    {
        _instance = [[self alloc]init];
    }
    
    +(instancetype)shareSingleton
    {
        return _instance;
    }
    
    // 重写alloc方法
    +(instancetype)alloc
    {
        // 判断_instance是否已经存在
        if (_instance) {
            
            // 如果存在抛出异常
            // 创建异常
           NSException *singException = [NSException exceptionWithName:@"NSInternalInconsistencyException" reason:@"There can only be one Singleton instance" userInfo:nil];
            
            // 抛出异常
            [singException raise];
            
        }
       return  [super alloc];
    }
    
    @end
    
    

    相关文章

      网友评论

          本文标题:模仿苹果方式单例

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