单例的两种创建方法

来源:互联网 发布:医药器械软件 编辑:程序博客网 时间:2024/04/30 03:02

1.线程保护


static MyClass instance = nil;

+(MyClass *)shareInstance{

@synchornized(self){

if(instance == nil) {

instance = [[MyClass alloc] init];

}

}

return instance;

}


2. GDC创建

static MyClass instance = nil;

+(MyClass *)shareInstance {

static dispatch_one_t  onceToke;

dispatch_one(&onceToke, ^{

instance = [[MyClass alloc] init];

});

return instance;

}



原创粉丝点击