单例模式

2017-01-17  本文已影响9人  PZcoder

单例模式1

//当前用的最多的方法,高大上 GCD
+(instancetype)sharePerson
{
    static Person *p = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        
        //这里代码只会被初始化一次
        p = [[Person alloc]init];
    });
    return p;
}

单例模式2

+(JYGHMainManager *)sharedMainManager
{
    static JYGHMainManager *shareRootMainManager = nil;

    @synchronized(self)
    {
        if(shareRootMainManager == nil)
        {
            shareRootMainManager = [[self alloc] init];
        }
    }
    return shareRootMainManager;
}
上一篇下一篇

猜你喜欢

热点阅读