虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > IOS编程/Objective-C > ios 单利的完整使用实例 及销毁 宏定义

ios 单利的完整使用实例 及销毁 宏定义
类别:IOS编程/Objective-C   作者:码皇   来源:互联网   点击:

下面小编就为大家分享一篇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 YNHTUserModelSYNTHESIZE_SINGLETON_FOR_CLASS(YNHTUserModel);
    @end

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

您可能感兴趣的文章:

  • Objective-C 宏定义详细介绍
相关热词搜索: ios 单利 销毁 宏定义