🔥 Objective-C ☛【单例使用】

GitHub Demo: https://github.com/BaHui/BHSingleton

简介

单例: 单独的实例.
单例模式是一种常用的 设计模式.

创建和销毁:

#import <Foundation/Foundation.h>

@interface BHSingletonObject : NSObject

// 创建单例
+ (instancetype)sharedInstance;

// 销毁单例 
+ (void)deallocInstance;

@end

#import "BHSingletonObject.h"

@implementation BHSingletonObject

static dispatch_once_t onceToken = 0;
static BHSingletonObject *singletonObject = nil;

+ (instancetype)sharedInstance {
    /*dispatch_once主要是根据onceToken的值来决定怎么去执行代码。
     当onceToken = 0 时,线程执行block中代码 (表示: 从未执行过)
     当onceToken = -1 时,线程跳过block中代码不执行 (表示: 已经执行过一次)
     当onceToken = 其他值 时,线程被线程被阻塞,等待onceToken值改变 (多线程中可见)
     */
    dispatch_once(&onceToken, ^{
        singletonObject = [[BHSingletonObject alloc] init];
    });

    return singletonObject;
}

+ (void)deallocInstance {
    onceToken = 0;
    singletonObject = nil;
}

@end

交流与建议

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,729评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,534评论 2 59
  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,352评论 3 283
  • 文/一阵小旋风 夜幕降临,冷风来犯,劳累了一天的小巷也变得无比安静。沉默了一天的星星也偷跑出来,像一个三四岁小孩一...
    北有晴空阅读 1,531评论 2 4
  • 郭相麟 人生是个奋斗的过程,有时候需要在社会学校学习聆听某些朋友的人生经验! 一位二十三岁青年背井离乡来到广...
    郭相麟阅读 2,806评论 0 0

友情链接更多精彩内容