代码快写

单例 定义宏

#define DJ_SINGLETON_DEF(_type_) + (_type_ *)sharedInstance;\

+(instancetype) alloc __attribute__((unavailable("call sharedInstance instead")));\

+(instancetype) new __attribute__((unavailable("call sharedInstance instead")));\

-(instancetype) copy __attribute__((unavailable("call sharedInstance instead")));\

-(instancetype) mutableCopy __attribute__((unavailable("call sharedInstance instead")));\

#define DJ_SINGLETON_IMP(_type_) + (_type_ *)sharedInstance{\

static _type_ *theSharedInstance = nil;\

static dispatch_once_t onceToken;\

dispatch_once(&onceToken, ^{\

theSharedInstance = [[super alloc] init];\

});\

return theSharedInstance;\

}

定义和实现:

@interface DJSingleton : NSObject

    DJ_SINGLETON_DEF(DJSingleton);

@end

@implementation DJSingleton

    DJ_SINGLETON_IMP(DJSingleton);

@end

你可能感兴趣的:(代码快写)