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

 更新时间:2018年01月05日 13:53:11   作者:qq_20035785  
下面小编就为大家分享一篇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 单利的完整使用实例 及销毁 宏定义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • IOS中手风琴表不能移动的解决方法

    IOS中手风琴表不能移动的解决方法

    本文给大家分享的是IOS开发中遇到的一个手风琴特效无法正常工作的问题的解决方法,经过度娘了很久才找到解决方法,这里推荐给大家,有需要的小伙伴可以参考下。
    2015-05-05
  • Objective-C实现无限循环轮播器

    Objective-C实现无限循环轮播器

    这篇文章主要介绍了Objective-C实现无限循环轮播器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • IOS 线程死锁详细介绍

    IOS 线程死锁详细介绍

    这篇文章主要介绍了IOS 线程死锁详细介绍的相关资料,需要的朋友可以参考下
    2017-02-02
  • iOS Label随字自动变大效果

    iOS Label随字自动变大效果

    这篇文章主要为大家详细介绍了iOS Label随字自动变大效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • react-native中AsyncStorage实例详解

    react-native中AsyncStorage实例详解

    这篇文章主要介绍了react-native中AsyncStorage实例详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • ios使用AVFoundation读取二维码的方法

    ios使用AVFoundation读取二维码的方法

    这篇文章主要介绍了ios使用AVFoundation读取二维码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Objective-C中类和方法的定义以及协议的使用

    Objective-C中类和方法的定义以及协议的使用

    这篇文章主要介绍了Objective-C中类和方法的定义以及协议的使用,配合Mac下的Xcode IDE进行讲解,需要的朋友可以参考下
    2016-01-01
  • iOS(闭包)block传值详解

    iOS(闭包)block传值详解

    这篇文章主要介绍了iOS(闭包)block传值的相关知识以及代码分享,对此有兴趣的朋友可以学习下。
    2018-02-02
  • iOS仿微信摇一摇动画效果加震动音效实例

    iOS仿微信摇一摇动画效果加震动音效实例

    这篇文章主要介绍了iOS仿微信摇一摇动画效果加震动音效实例,详细介绍了微信摇一摇功能的实现原理,非常具有实用价值,需要的朋友可以参考下。
    2017-03-03
  • iOS系统的底层通知框架库示例详解

    iOS系统的底层通知框架库示例详解

    这篇文章主要给大家介绍了关于iOS系统的底层通知框架库的相关资料,文中通过示例代码介绍的非常详细,对各位iOS开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05

最新评论