zoukankan      html  css  js  c++  java
  • [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; 

  • 相关阅读:
    JS 函数—函数内部:arguments、this、,caller、new.target
    JS—函数概述
    Number API
    Object-API—02
    03构建之法阅读笔记之一
    4月第二次每周总结(4月15日)
    电梯演讲
    个人作业3—折线图
    个人作业3—china.jsp设置页面
    每周总结(4月8日)
  • 原文地址:https://www.cnblogs.com/jinjiantong/p/2976367.html
Copyright © 2011-2022 走看看