单例的正确初始化方法

Posted 雷坤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例的正确初始化方法相关的知识,希望对你有一定的参考价值。

.h文件声明

+ (MyHandle *)shareMyHandle;

.m文件实现

#import "MyHandle.h"

// 声明一个静态变量
static MyHandle *myHandel = nil;
@implementation MyHandle

// 实现方法

+ (MyHandel *)shareMyHandel

{

 // 在GCD中只执行一次,用于记录是否执行过

static dispath_once_t onceToken;

dispath_once(&onceToken, ^{

myHandel = [MyHandel alloc] init];

 

});

return myHandel;

}

 

以上是关于单例的正确初始化方法的主要内容,如果未能解决你的问题,请参考以下文章

绝对单例的创建

单例的几种方式,以及如何破坏单例,使用枚举保护单例;

在 __new__ 中进行初始化工作是“原罪”吗?如果是这样,如何最好地处理单例的运行一次初始化?

看完MJ讲解的单例后的个人总结

Meyers 的单例实现实际上是如何实现单例的

关于 Swift 单例的例子