ios 單利的完整使用實(shí)例 及銷毀 宏定義
更新時間:2018年01月05日 13:53:11 作者:qq_20035785
下面小編就為大家分享一篇ios 單利的完整使用實(shí)例 及銷毀 宏定義,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
如下所示:
//下面這段宏考過去直接用
#define SYNTHESIZE_SINGLETON_FOR_HEADER(className) \
\
+ (className *)sharedInstance;\
+ (void)destroyInstance;
//在單例生成之前onceToken = 0,在單例生成之后onceToken = -1了,之后一直保持-1這個值,知道這個之后我想你應(yīng)該有思路了
#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 協(xié)議 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 單利的完整使用實(shí)例 及銷毀 宏定義就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Objective-C實(shí)現(xiàn)無限循環(huán)輪播器
這篇文章主要介紹了Objective-C實(shí)現(xiàn)無限循環(huán)輪播器的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05
react-native中AsyncStorage實(shí)例詳解
這篇文章主要介紹了react-native中AsyncStorage實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03
Objective-C中類和方法的定義以及協(xié)議的使用
這篇文章主要介紹了Objective-C中類和方法的定義以及協(xié)議的使用,配合Mac下的Xcode IDE進(jìn)行講解,需要的朋友可以參考下2016-01-01

