概述
如下所示:
//下面这段宏考过去直接用 #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 单利的完整使用实例 及销毁 宏定义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持靠谱客。
最后
以上就是乐观睫毛膏为你收集整理的ios 单利的完整使用实例 及销毁 宏定义的全部内容,希望文章能够帮你解决ios 单利的完整使用实例 及销毁 宏定义所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复