博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift中单例类的创建
阅读量:5291 次
发布时间:2019-06-14

本文共 866 字,大约阅读时间需要 2 分钟。

1.最经典的

class TheOneAndOnlyKraken {
    
static let sharedInstance = TheOneAndOnlyKraken()
    
private init() {} 
//This prevents others from using the default '()' initializer for this class.
}
 

2.只执行一次法

class TheOneAndOnlyKraken {
    
class 
var 
sharedInstance: TheOneAndOnlyKraken {
        
struct Static {
            
static 
var 
onceToken: dispatch_once_t = 0
            
static 
var 
instance: TheOneAndOnlyKraken? = nil
        
}
        
dispatch_once(&Static.onceToken) {
            
Static.instance = TheOneAndOnlyKraken()
        
}
        
return 
Static.instance!
    
}
}

3.结构体法

class TheOneAndOnlyKraken {
    
class 
var 
sharedInstance: TheOneAndOnlyKraken {
        
struct Static {
            
static let instance = TheOneAndOnlyKraken()
        
}
        
return 
Static.instance
    
}
}

4.全局变量法

private let sharedKraken = TheOneAndOnlyKraken()
class TheOneAndOnlyKraken {
    
class 
var 
sharedInstance: TheOneAndOnlyKraken {
        
return 
sharedKraken
    
}
}

转载于:https://www.cnblogs.com/danMing-love/p/7418083.html

你可能感兴趣的文章
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】
查看>>
[原创]Java 的传值小例子
查看>>
【MySQL学习】安装和配置 服务无法启动 没有报告任何错误
查看>>
C# 修饰符
查看>>
JavaScript启示录
查看>>
我需要什么样的浏览器?
查看>>
取textaera里的值
查看>>
java设计模式1--工厂方法模式(Factory Method)
查看>>
博客第一弹—聊聊HTML的那些事
查看>>
上海2017QCon个人分享总结
查看>>
HIVE快速入门 分类: B4_HIVE 2015-...
查看>>
Mysql安装方法及安装问题解决
查看>>
Java动态代理的两种实现方式:
查看>>
PHP trait
查看>>
Redis的常用命令(三)
查看>>
HDOJ 4749 Parade Show
查看>>