美文网首页
iOS 正确创建单例的方式

iOS 正确创建单例的方式

作者: 超人_22 | 来源:发表于2018-04-07 15:38 被阅读0次

1、什么是单例?

    单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例,在需要全局资源共享的对象时,经常会用到这种设计模式。

2、单例的作用

 顾名思义,单例,即是在整个项目中,这个类的对象只能被初始化一次。它的这种特性,可以广泛应用于某些需要全局共享的资源中,比如管理类,引擎类,也可以通过单例来实现传值。UIApplication、NSUserDefaults等都是IOS中的系统单例。

3、单例的写法

       单例的写法常用的有两种方式:

       方式1、不考虑线程安全

   方式2、考虑线程安全  (一般用用得最多的也就是这种)

通过上面的方法,我们已经可以使用类方法来得到这个单例,但是很多时候,项目的工程量很大,还有可能会很多开发者同时参与一个项目的开发,有的也会用到这个单例,例如上面二种方法,在  alloc  或者new  的方式创建时就会重新在内存中开辟内存空间了,如下图:

4、代码的优化

因为通过alloc或者copy还是new,都是通过调用allocWithzone和copyWithzone来分配空间的,所以我们重写allocWithZone 方法:

我们再次打印下内存地址看看是否相同:

通过上面的优化后不管是new 还是alloc  创建出来的都是全局唯一的对象啦 !

相关文章

网友评论

      本文标题:iOS 正确创建单例的方式

      本文链接:https://www.haomeiwen.com/subject/osjyhftx.html