swift中使用dispatch_once
作者:
番茄炒西红柿啊 | 来源:发表于
2018-09-27 16:37 被阅读54次
- 在Swift 3.0中原有的Dispatch once已经被废弃了.
- 我们可以通过给DispatchQueue实现一个扩展方法来实现原有的功能:
extension DispatchQueue {
private static var _onceToken = [String]()
class func once(token: String = "\(#file):\(#function):\(#line)", block: ()->Void) {
objc_sync_enter(self)
defer
{
objc_sync_exit(self)
}
if _onceToken.contains(token)
{
return
}
_onceToken.append(token)
block()
}
}
// 使用
DispatchQueue.once {
// your code
}
DispatchQueue.once(token: "identify") {
// your code
}
参考: Swift 3.0之后实现Dispatch once扩展
本文标题:swift中使用dispatch_once
本文链接:https://www.haomeiwen.com/subject/hsoeoftx.html
网友评论