IOS swift项目的单例模式.swift5以后的单例模式
IOS swift项目的单例模式.swift5以后的单例模式
不能继承NSObject
第一种写法,最简单
class SoundTools{static let sharedInstance = SoundTools()private init() { }
第2种写法
class SoundTools{//提供全局访问点class var sharedInstance2: SoundTools {struct Static {static let inst: SoundTools = SoundTools()}return Static.inst}}
在打印地方,写一个打印地址的函数,否则print函数无法打印地址
func address<T: AnyObject>(o: T) -> String {return String.init(format: "%018p", unsafeBitCast(o, to: Int.self))}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {// print(SoundTools.sharedInstance)print(address(o: SoundTools.sharedInstance))
// print(SoundTools.sharedInstance2)print(address(o: SoundTools.sharedInstance2))print(address(o: Peson()))print("===")}
看看控制台输出
0x00006000016f0f20
0x00006000016ec170
0x00006000016ec180
===
0x00006000016f0f20
0x00006000016ec170
0x00006000016f0eb0
===
证明单例没有问题
IOS swift项目的单例模式.swift5以后的单例模式相关推荐
- swift 项目_如何对iOS项目进行静态分析
随着项目的扩大,依靠人工codereview来保证项目的质量,越来越不现实,这时就有必要借助于一种自动化的代码审查工具:程序静态分析. 程序静态分析(Program Static Analysis)是 ...
- IOS OC项目的单例模式
IOS OC项目的单例模式 采用GCD方式书写单例,苹果官方示例代码也是这样写的,并打印一下地址,看看比较new出来的对象的地址是否相同. 提供一个类方法,供外部访问方便. @interface Ne ...
- Swift项目引入第三方库的方法
分类: iOS(55) 目录(?)[+] Swift项目引入第三方库的方法 转自 http://blog.shiqichan.com/How-To-Import-3rd-Lib-Into-Swif ...
- iOS开源项目周报0316
由OpenDigg 出品的iOS开源项目周报第十二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. GodEye ...
- Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课
Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课 本课程采用Q Q群直播方式进行直播,价值99元视频课程免费直播.完整的基于Swift项目实战,手把手教你做一个Swift版i ...
- iOS开源项目周报1222
由OpenDigg 出品的iOS开源项目周报第二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. io ...
- iOS开源项目周报1229
由OpenDigg 出品的iOS开源项目周报第三期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Ma ...
- iOS Swift 使用 CLLocationManager 定位
iOS Swift 使用 CLLocationManager 定位 CLLocationManager 是IOS 系统提供的定位对象,通过该对象可以获取定位信息,包括:经纬度.海拔.方向.速度.通过反 ...
- OpenDigg iOS开源项目月报201704
由OpenDigg 出品的iOS开源项目月报第一期来啦.我们的iOS开源月报集合了OpenDigg一个月来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Transi ...
最新文章
- 美多商城之验证码(短信验证码1)
- Mobile OpenCart 自适应主题模板 ABC-0074
- 去除0值和nan_Pandas 1.0的新功能
- TMG2010 之创建访问规则
- Choose the Right Search Solution
- Oracle 解决4031错误
- java复制类mytool_MyTools
- 如何判断mysql某个数据库某张表是否存在
- 2016校招腾讯研发岗笔试题---递归法求解格雷码
- [css] 如何使用css3实现一个div设置多张背景图片?
- java中this是实例吗_java中this用法实例
- vscode开发环境
- ios sandbox
- 智能胖墩机器人_我就是那个叫胖墩儿的送货机器人
- 2023南京大学计算机考研信息汇总
- python中几种括号的用法()、[]、{} 举例说明
- 推荐这3款图片流动特效神器,一键即可让照片“动”起来
- vue+cordova 实现第三方登录( QQ 微信 微博)之微博登录
- 炎黄盈动易鲸云低代码平台,全面助推企业数字化转型升级
- System services not available to Activities before onCreate()错误解决方法
热门文章
- C语言中三块“难啃的硬骨头”
- 电脑主机,晚上就煎肉,把隔壁宿舍都馋哭了!
- HLS中数据的合并与拆分
- h3c s7506e 配置手册_H3C交换机s5500Web登录配置
- 逆置单链表c语言程序,(数据结构C语言版)顺序表和单链表的逆置
- 关系式调用c语言脚本_认识LoadRunner脚本语言
- mysql 雇员表脚本,mysql压力测试脚本实例_MySQL
- php 弹窗代码大全,PHP_asp.net弹出窗口代码大全,//关闭,父窗口弹出对话框,子窗 - phpStudy...
- upload-labs_pass21_CTF逻辑老饶了
- python邮件发送csv附件_Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法