美文网首页
将单利进行宏定义

将单利进行宏定义

作者: elite_kai | 来源:发表于2017-02-06 11:03 被阅读37次

废话不多说,直接上代码,创建一个继承于NSObject的类Singleton
在Singleton.h文件中代码如下

#import <Foundation/Foundation.h>

//.h文件
#define SingletonH  + (instancetype)sharedInstance;


//加上斜杠是为了让编辑器认为下一行代码也是宏的内容
//.m文件
#define SingletonM \
static id _instance;\
\
+ (instancetype)sharedInstance\
{\
static dispatch_once_t onceToken;\
dispatch_once(&onceToken, ^{\
_instance = [[self alloc]init];\
});\
return _instance;\
}\
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone\
{\
static dispatch_once_t onceToken;\
dispatch_once(&onceToken, ^{\
_instance = [super allocWithZone:zone];\
});\
return _instance;\
}\
\
- (id)copyWithZone:(NSZone *)zone\
{\
return _instance;\
}

在Singleton.m文件中什么都不用写,只剩下一个这东西

#import "Singleton.h"

定义好了单利宏,接下来看下使用
创建一个SingletonView,继承于UIView类
在SingletonView.h文件中代码如下

#import <UIKit/UIKit.h>
#import "Singleton.h"

@interface SingletonView : UIView
SingletonH;
@end

在SingletonView.m文件中代码如下

#import "SingletonView.h"

@implementation SingletonView
SingletonM;
@end

相关文章

  • 将单利进行宏定义

    废话不多说,直接上代码,创建一个继承于NSObject的类Singleton在Singleton.h文件中代码如下...

  • #define定义的宏和const定义的常量有什么区别?

    define定义的宏指令,程序是在预处理阶段将#define定义的宏与内容进行替换,因此在程序运行时,内存的常量区...

  • 在swift中使用宏定义

    在OC中我们习惯将一些常用变量或者方法使用宏定义全局访问,然而swift因为命名空间的缘故,不需要像OC那样进行宏...

  • 使用宏写单例

    本文只介绍ARC情况下的单利 过去一直背不下来单利如何写,就是知道这么回事,也知道通过宏来写单利,但是一直记不住,...

  • Swift UI 22 简说宏定义

    1:Swift中没有了#Define这种宏定义了,我们可以通过以下几种方式进行类似于宏定义的方式进行使用2:Swi...

  • 3、Swift-“宏定义”的实现

    OC中的宏定义 C语言的宏定义, 并不是很严谨, 任何代码段都可以进行宏定义, 甚至是无效的无序的乱码也可以. 因...

  • iOS常用宏定义大全

    宏定义与常量的区别 宏:只是在预处理器里进行文本替换,不做任何类型检查,宏能定义代码,const不能,多个宏编译时...

  • 宏定义的黑魔法

    什么是宏定义? 宏定义是使用#define将某段代码、字符串等一串的文字,用一个宏来代替的一种预处理方式 宏定义的...

  • Kingfisher 自定义缓存机制

    自定义管理缓存的单利: 使用如下:

  • 将OC中宏定义改为Swift版“宏定义”

    其实,swift并不支持宏定义,实质上是一些全局常量和函数,所以我们可以通过这个途径实现类似于OC中的宏定义,以减...

网友评论

      本文标题:将单利进行宏定义

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