iOS 宏~单例封装宏
2017-10-14 16:31
246 查看
//联系人:石虎
QQ: 1224614774 昵称:嗡嘛呢叭咪哄
/**1.SH前缀是作者名称简称"SH".
2.宏定义直接拷贝到pch文件中即可.
*/
一、单例使用
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];
谢谢!!!
相关文章推荐
- iOS开发之资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0+)
- ios baseModel的封装方法
- iOS实现白板、画板功能,有趣的涂鸦工具,已封装,简单快捷使用
- iOS开发 --- AFNetworking 进行封装(POST请求遇到的问题)
- iOS_14_tableViewController_xib创建和封装自定义cell
- iOS 简单封装的一个夜间模式
- iOS封装时候,添加背景黑色,能点击的处理
- iOS FMDB自己封装的单例类
- iOS开发拓展篇—封装音频文件播放工具类
- iOS 原生网络请求封装
- iOS 本地存储NSUserDefaults封装代码
- iOS: AFNetworking的简单封装和图片上传
- ios网络学习------8 xml格式数据的请求处理 用代码块封装
- 自己动手写一个 iOS 网络请求库——封装接口
- iOS开发 - 随机图片验证码封装
- iOS记录App、封装播放器、核心动画、加载框架、分段器、多种控件等源码
- IOS封装一个微信聊天的输入工具
- IOS MBProgressHUD第三方库的封装
- iOS开发封装一个可以响应超链接的label——基于RCLabel的交互扩展
- (转)iOS keychain API及其封装