ios中的单例模式

一、what

单例模式是程序开发的一种设计模式(多年软件开发总结出来的一些经验、方法)。

二、作用

  • 可以保证在程序运行过程,一个类只有一个实例,而且该实例易于提供外界访问
  • 方便的控制了实例个数,并节约系统资源
  • 使用场合
    在整个应用程序中,共享一份资源(这份资源只需要创建初始化1次)

代码如下:
定义一个单例类
AudioTool.h文件

#import 


@interface HMAudioTool : NSObject
+ (instancetype)sharedAudioTool;
@end

AudioTool.m文件

#import "AudioTool.h"

@interface AudioTool()
@end

@implementation AudioTool
//// 定义一份变量(整个程序运行过程中, 只有1份)
static id _instance;
- (id)init
{
    if (self = [super init]) {
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            // 加载资源
            
        });
    }
    return self;
}
///**
// *  重写这个方法 : 控制内存内存
// */
+ (id)allocWithZone:(struct _NSZone *)zone
{
   // 里面的代码永远只执行1次
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
       _instance = [super allocWithZone:zone];
   });
   
   // 返回对象
   return _instance;
}
+ (instancetype)sharedAudioTool
{
   // 里面的代码永远只执行1次
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
       _instance = [[self alloc] init];
   });
   
   // 返回对象
   return _instance;
}
@end

你可能感兴趣的:(ios中的单例模式)