美文网首页
使用宏封装单例

使用宏封装单例

作者: 希达like | 来源:发表于2019-05-28 14:33 被阅读0次
一、单例使用
  1. 使用方法 .h
 #import <Foundation/Foundation.h>

@interface MineAuthentication :NSObject

SHSingleInstance_H_(AuthenticationManager )

@end

2.使用方法.m

#import "SHMineAuthentication.h"

@interface MineAuthentication ()

@end


@implementation MineAuthentication

SHSingleInstance_M_(AuthenticationManager )


@end
二、单例实现和定义
 //1.单例实现和定义宏--方便.h文件使用

#define SHSingleInstance_H_(name) \

+ (instancetype)shared##name;
//2.单例实现和定义宏--方便.m文件使用

#define SHSingleInstance_M_(name) \

static id _instance = nil; \

+ (instancetype)shared##name \

{ \

static dispatch_once_t onceToken; \

dispatch_once(&onceToken, ^{ \

if (_instance == nil) \

{ \

_instance = [[self alloc] init]; \

} \

}); \

return _instance; \

} \

\

+ (instancetype)allocWithZone:(struct _NSZone *)zone \

{ \

static dispatch_once_t onceToken; \

dispatch_once(&onceToken, ^{ \

if (_instance == nil) \

{ \

_instance = [super allocWithZone:zone]; \

} \

}); \

return _instance; \

} \

\

+ (id)copyWithZone:(struct _NSZone *)zone \

{ \

return _instance; \

} \

+ (id)mutableCopyWithZone:(struct _NSZone *)zone \

{ \

return _instance; \

}
三、单例调用
 [MineAuthenticationsharedAuthenticationManager];

摘录自原文:https://blog.csdn.net/shihuboke/article/details/78235099

相关文章

  • 使用宏封装单例

    一、单例使用 使用方法 .h 2.使用方法.m 二、单例实现和定义 三、单例调用 摘录自原文:https://bl...

  • iOS 单例

    单例模式实现不能使用继承 定义单例实现 简写 定义单例实现宏

  • IOS Tips(1):单例写法

    1.推荐单例写法 封装成宏定义 调用实例: 参考链接

  • 用宏封装单例

    #define SingletoH(methodName) +(instancetype)shared##met...

  • 单例模式

    单例模式是封装的一种形式,依靠单例模式调用被封装的属性和方法,因为使用单例模式的类无法生成实例(只能引用单例模式所...

  • 单例

    单例 单例宏

  • 0922 宏定义通杀单例

    1、单例宏定义源码 说明此宏定义精华就是把声明文件和执行文件都放在宏定义了,而且针对不同的类,生成不同的单例,使用...

  • 单例模式和GCD单例实现

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

  • 使用宏写单例

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

  • 单例宏的使用

    1、单例宏代码块如下: 2、使用方法第一步将代码块拷到你的pch文件中第二步将代码中所有的flynn替换成你的类前...

网友评论

      本文标题:使用宏封装单例

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