应用GCD的dispatch_once创建单例

使用GCD的dispatch_once创建单例

之前一篇《Objective-C的单例模式(singleton)

http://arthurchen.blog.51cto.com/2483760/642536

介绍了创建单例的方式,不过后来发现其实在ios 4.0后有更加简单的方式。

就是使用GCD的功能

代码如下:

+ (instantClass *)sharedClient {

static instantClass *_sharedClient = nil;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

_sharedClient = [[instantClass alloc] init];

});

return _sharedClient;

}