1. 程式人生 > >iOS單例巨集定義

iOS單例巨集定義

//=====================單例==================
// @interface
#define singleton_interface(className) \
+ (className *)shared;


// @implementation
#define singleton_implementation(className) \
static className *_instance; \
+ (id)allocWithZone:(NSZone *)zone \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&
onceToken, ^{ \ _instance = [super allocWithZone:zone]; \ }); \ return _instance; \ } \ + (className *)shared \ { \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ _instance = [[self alloc] init]; \ }); \ return _instance; \ } //========================end==================