IOS之单例模式

IOS单例模式


1 普通单例

static HAObjectStudy *defaultStudy = nil;

+(HAObjectStudy *)getInstance
{
    @synchronized(self){
        if(defaultStudy == nil){
            defaultStudy = [HAObjectStudy new];
            NSLog(@"defaultStudy 被getInstance创建");
        }
        return defaultStudy;
    }
}

通用方式,自己控制线程安全


2 initialize单例

static HAObjectStudy *defaultStudy = nil;

+ (void)initialize
{
    [super initialize];
    NSLog(@"initialize --- 初始化,类在创建的时候进行初始化要进行的操作");
    if (defaultStudy == nil) {
        defaultStudy = [HAObjectStudy new];
        NSLog(@"defaultStudy 被initialize创建");
    }
}

+(HAObjectStudy *)getInitializeInstance
{
    return defaultStudy;
}

借助Object-c的类初始化机制,不用控制线程安全

说明:程序的类包括加载,连接,初始化过程,当类第一次使用的时候运行唯一一次initialize初始化,所以可取巧用来支持单例模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值