1、单例的定义
2、单例的作用
3、单例的使用场合
4、优点
5、缺点
6、注意:
7、创建单例对象的步骤
1、在类内部定义一个static修饰的全局变量。
2、提供一个类方法 ,方法名:+share类名 或者 +default类名,方便外界访问。
3、重写系统的 +allocWithZone:方法,保证一个单例对象分配一次内存空间,实现一个类只有一个实例。
4、重写–copyWithZone方法和-mutableCopyWithZone方法,遵守NSCopying协议、NSMutableCopying协议,可以通过copy、mutableCopy方式创建对象。
输出显示
问题:因为单例对象使用 static 修饰,被存储在静态区域。该对象只能在程序终止时才会被释放。如果我要提前释放单例对象该怎么做呢?
打印的数据
那么是什么原因造成的呢?进入到dispatch_once的源码实现中去探究下
dispatch_once源码
注意dispatch_once源码中的红线部分,dispatch_once_t *predicate; dispatch_once_t又是什么呢?继续看源码
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。