• [ios]单例


    http://blog.csdn.net/mars2639/article/details/7283741

    static Singleton * sharedInstance = nil;  

       

    @implementation Singleton  

       

    //获取单例  

    +(Singleton *)sharedInstanceMethod  

    {  

        @synchronized(self) {  

            if (sharedInstance == nil)  

          sharedInstance = [[self alloc] init];  

            }  

        }  

        return sharedInstance;  

    }  

       

    //唯一一次alloc单例,之后均返回nil  

    + (id)allocWithZone:(NSZone *)zone  

    {  

        @synchronized(self) {  

            if (sharedInstance == nil) {  

                instance = [super allocWithZone:zone];  

                return instance;  

            }  

        }  

        return nil;  

    }  

       

    //copy返回单例本身  

    - (id)copyWithZone:(NSZone *)zone  

    {  

        return self;  

    }  

       

    //retain返回单例本身  

    - (id)retain  

    {  

        return self;  

    }  

       

    //引用计数总是为1  

    - (unsigned)retainCount  

    {  

        return 1;  

    }  

       

    //release不做任何处理  

    - (void)release  

    {  

         

    }  

       

    //autorelease返回单例本身  

    - (id)autorelease  

    {  

        return self;  

    }  

       

    //  

    -(void)dealloc  

    {  

          [super dealloc];  

    }  

       

    @end 

    ios5 有了arc以后就这样简单

    static RootViewController* sharedRootController = nil;
     
    +(RootViewController *) sharedController{
        @synchronized(self){
            if (sharedRootController == nil) {
               sharedRootController = [[self alloc] init];
            }
        }
        return  singleController;
    }

    还有一种方法

       static AccountManager *sharedAccountManagerInstance = nil;  

            static dispatch_once_t predicate;  

            dispatch_once(&predicate, ^{  

                    sharedAccountManagerInstance = [[self alloc] init];   

            });  

        return sharedAccountManagerInstance; 

  • 相关阅读:
    STM32使用之GPIO
    STM32时钟分析
    stm32 rcc 时钟
    LCD与FSMC的连接原理
    经典算法题随机从连续的100个不重复数中取出100个不重复随机数
    所有win7机器都必须要做的一个优化!作用:让系统流畅,减少卡顿
    WebService返回自定义对象遇到的错误
    获取浏览器信息
    60行代码的俄罗斯方块
    SVN常用命令
  • 原文地址:https://www.cnblogs.com/jinjiantong/p/2976367.html
Copyright © 2020-2023  润新知