美文网首页
iOS单例宏

iOS单例宏

作者: yuandiLiao | 来源:发表于2017-05-24 21:51 被阅读0次

开发中我们无可避免的使用到单例,单例的具体作用不多说了,这里记录一下单例宏的写法。新建一个header file,然后在里面具体实现代码如下。使用的时候在类的.h文件SingletonH(classname)传入类名和在.m文件中SingletonH(classname)传入类名即可

//@interface
#define SingletonH(classname)\
+ (classname *)shared##classname


//@implementation
#define SingletonM(classname) \
static classname* _instace = nil; \
+ (instancetype)shared##classname \
{ \
if (_instace == nil) { \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instace = [[super allocWithZone:NULL] init];\
}); \
} \
return _instace; \
} \
+ (id)allocWithZone:(struct _NSZone *)zone \
{ \
return [self shared##classname];\
} \
\
+ (id)copyWithZone:(struct _NSZone *)zone \
{ \
return [self shared##classname];\
} \
\
+ (id)mutableCopyWithZone:(struct _NSZone *)zone \
{ \
return [self shared##classname];\
}\
- (id)copyWithZone:(NSZone *)zone\
{ \
return [classname shared##classname];\
} \

单例类

#import <Foundation/Foundation.h>

@interface HFDataReportUMHandler : NSObject

SingletonH(HFDataReportUMHandler);

@end


#import "HFDataReportUMHandler.h"

@implementation HFDataReportUMHandler
SingletonM(HFDataReportUMHandler);

@end

//获取单例的对象
[HFDataReportUMHandler sharedHFDataReportUMHandler]

相关文章

  • ios 单例宏

    单例的初始化在整个app生命周期内(非对象的生命周期)只执行一次,本文介绍通过宏来实现单例方法的定义。代码如下:-...

  • iOS单例宏

    开发中我们无可避免的使用到单例,单例的具体作用不多说了,这里记录一下单例宏的写法。新建一个header file,...

  • iOS 单例宏

    #if __has_feature(objc_arc) #define SYNTHESIZE_SINGLETON_...

  • 单例

    单例 单例宏

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • iOS 常用单例宏

    在你的宏文件里面加入单例宏,快捷创建单例 调用 .h .m

  • OC - iOS - 宏单例

    Macro单例

  • iOS单例--宏定义

    如下是单例,是一个宏。这样只有工程中用到单例直接用此宏创建,大大节约时间。 如下是通过宏文件如何创建单例。在.h中...

  • IOS OC 单例宏

  • 单例模式和GCD单例实现

    1、传统单例模式2、GCD单例模式3、用宏实现GCD单例模式4、用宏实现GCD单例模式,名称随类名变化而变化 单例...

网友评论

      本文标题:iOS单例宏

      本文链接:https://www.haomeiwen.com/subject/peaoxxtx.html