什么是 dispatch_once_t
What is dispatch_once_t
谁能告诉我什么是 dispatch_once_t 及其意义。
苹果在文档中是这么写的
A predicate for use with the dispatch_once function
我也看不懂。
+ (instancetype)sharedInstance {
static JitsiMeet *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
有人可以解释一下吗?保留以上代码作为参考?
根据 dispatch_once
的文档,它需要一个参数 dispatch_once_t
,用于测试块是否已完成。
所以你的代码解释起来很简单:
- 您只想初始化
JitsiMeet
一次。
- 您创建了一个令牌来检查您是否已经初始化它,并将其命名为
onceToken
- 您调用了
dispatch_once
,它检查 dispatch_once_t
的值。
- 它开始初始化
sharedInstance
- 它会在下次调用
sharedInstance
函数时跳到初始化 sharedInstance
。
dispatch_once
确保您永远不会 return nil
.
谁能告诉我什么是 dispatch_once_t 及其意义。
苹果在文档中是这么写的
A predicate for use with the dispatch_once function
我也看不懂。
+ (instancetype)sharedInstance {
static JitsiMeet *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
有人可以解释一下吗?保留以上代码作为参考?
根据 dispatch_once
的文档,它需要一个参数 dispatch_once_t
,用于测试块是否已完成。
所以你的代码解释起来很简单:
- 您只想初始化
JitsiMeet
一次。 - 您创建了一个令牌来检查您是否已经初始化它,并将其命名为
onceToken
- 您调用了
dispatch_once
,它检查dispatch_once_t
的值。- 它开始初始化
sharedInstance
- 它会在下次调用
sharedInstance
函数时跳到初始化sharedInstance
。
- 它开始初始化
dispatch_once
确保您永远不会 returnnil
.