Swift3 单例模式

常见的有这么几种方法
第一种简单到爆的
final class Single: NSObject {
static let shared = Single()
private override init() {}
}
final关键字的作用是这个类或方法不希望被继承和重写
第二种
public extension DispatchQueue {
private static var onceToken = [String]()
public class func once(_ token: String, _ block: () -> Void) {
objc_sync_enter(self)
defer {
objc_sync_exit(self)
}
if onceToken.contains(token) {
return
}
onceToken.append(token)
block()
}
}
final class Single2: NSObject {
static func shared() -> Single2 {
struct Singleton {
static var single: Single2?
}
DispatchQueue.once(NSUUID().uuidString) {
Singleton.single = shared()
}
return Singleton.single!
}
}
第二种完全是OC风格的单例,但是由于Swift3中废弃了原来的dispatch_once_t,所以需要先给DispatchQueue添加一个extension,实现原先的dispatch_once_t效果
第三种
private let single = Single3()
final class Single3: NSObject {
static var shared: Single3 {
return single
}
}
由于Swift3中加强了权限控制,导致如果重写private override init()方法会报错,所以这种写法在Swift3中的安全性未知。
第四种
final class Single4: NSObject {
static var shared: Single4 {
struct Static {
static let instance: Single4 = Single4()
}
return Static.instance
}
private override init() {}
}
在方法内定义静态变量
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Swift
# 单例
# 单例模式详解
# 四种单例模式详解
# Swift 5.1 之类型转换与模式匹配的教程详解
# 深入讲解Swift中的模式匹配
# 深入理解Swift中单例模式的替换及Swift 3.0单例模式的实现
# swift where与匹配模式的实例详解
# 深入解析Swift代理模式
# 仓库模式及其在Swift 项目中的应用详解
# 重写
# 第二种
# 希望能
# 报错
# 谢谢大家
# 第一种
# 先给
# 第三种
# 法会
# 几种方法
# 第四种
# span
# style
# init
# private
# override
# extension
# public
# DispatchQueue
# color
相关文章:
公司网站设计制作厂家,怎么创建自己的一个网站?
建站之星与建站宝盒如何选择最佳方案?
宝塔新建站点为何无法访问?如何排查?
如何在阿里云完成域名注册与建站?
建站之星免费版是否永久可用?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何通过云梦建站系统实现SEO快速优化?
,南京靠谱的征婚网站?
小型网站建站如何选择虚拟主机?
建站主机数据库如何配置才能提升网站性能?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何选择最佳自助建站系统?快速指南解析优劣
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
建站主机服务器选购指南:轻量应用与VPS配置解析
实惠建站价格推荐:2025年高性价比自助建站套餐解析
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何快速启动建站代理加盟业务?
如何挑选最适合建站的高性能VPS主机?
,sp开头的版面叫什么?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
制作网站的模板软件,网站怎么建设?
如何通过IIS搭建网站并配置访问权限?
如何选择服务器才能高效搭建专属网站?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
香港服务器租用费用高吗?如何避免常见误区?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何在阿里云通过域名搭建网站?
建站与域名管理如何高效结合?
北京网站制作公司哪家好一点,北京租房网站有哪些?
小程序网站制作需要准备什么资料,如何制作小程序?
常州企业网站制作公司,全国继续教育网怎么登录?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
自助网站制作软件,个人如何自助建网站?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
,网页ppt怎么弄成自己的ppt?
怎么将XML数据可视化 D3.js加载XML
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何有效防御Web建站篡改攻击?
想学网站制作怎么学,建立一个网站要花费多少?
建站之星如何快速更换网站模板?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
再谈Python中的字符串与字符编码(推荐)
湖北网站制作公司有哪些,湖北清能集团官网?
定制建站流程步骤详解:一站式方案设计与开发指南
*请认真填写需求信息,我们会在24小时内与您取得联系。