ios 单利的完整使用 及销毁 宏定义 ios 单利的完整使用实例 及销毁 宏定义

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

ios 单利的完整使用 及销毁 宏定义 ios 单利的完整使用实例 及销毁 宏定义

qq_20035785   2021-03-28 我要评论
想了解ios 单利的完整使用实例 及销毁 宏定义的相关内容吗,qq_20035785在本文为您仔细讲解ios 单利的完整使用 及销毁 宏定义的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:ios,单利,销毁,宏定义,下面大家一起来学习吧。

如下所示:

//下面这段宏考过去直接用
#define SYNTHESIZE_SINGLETON_FOR_HEADER(className) \
\
+ (className *)sharedInstance;\
+ (void)destroyInstance;
//在单例生成之前onceToken = 0,在单例生成之后onceToken = -1了,之后一直保持-1这个值,知道这个之后我想你应该有思路了
#define SYNTHESIZE_SINGLETON_FOR_CLASS(className) \
\
static className *shared##className = nil; \
static dispatch_once_t onceToken;\
+ (className *)sharedInstance\
{\
 return [[self alloc] init];\
}\
+ (className *)allocWithZone:(struct _NSZone *)zone\
{\
 dispatch_once(&onceToken, ^{\
  shared##className = [super allocWithZone:zone];\
 });\
 return shared##className;\
}\
- (className *)copyWithZone:(NSZone *)zone\
{\
 return shared##className;\
}\
- (className *)mutableCopyWithZone:(NSZone *)zone\
{\
 return shared##className;\
}\
+ (void)destroyInstance {\
 shared##className = nil;\
 onceToken = 0;\
}\
//用法,注意要遵循NSCopying,NSMutableCopying 协议
import <Foundation/Foundation.h>
@interface YNHTUserModel : NSObject<NSCopying,NSMutableCopying>
SYNTHESIZE_SINGLETON_FOR_HEADER(YNHTUserModel);
@property (nonatomic,copy) NSString* inviter_id;//邀请人ID
@property (nonatomic,copy) NSString* token;
@property (nonatomic,copy) NSString* nick_name;
@end
#import "YNHTUserModel.h"
@implementation YNHTUserModel
SYNTHESIZE_SINGLETON_FOR_CLASS(YNHTUserModel);

@end

以上这篇ios 单利的完整使用实例 及销毁 宏定义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们