OC和Swift中的单例写法

2019-12-11  本文已影响0人  QH_hao

单例:

在整个项目中只有一个实例,并提供一个类方法供全局调用

1.单例的优点

单例可以保证系统中该类有且仅有一个实例,所以很便于外界访问.

因为其上面的特点,对于项目中的个别场景的传值,存储状态等等更加方便

2.单例的缺点

单例实例一旦创建,对象指针是保存在静态区的,那么在堆区分配空间只有在应用程序终止后才会被释放

单例不能继承

在写项目的时候,我们实际用到了很多系统给我们提供的单例类;

//[UIApplication sharedApplication];  //应用程序实例类

//[NSNotificationCenter defaultCenter];//消息中心实例类

//[NSFileManager defaultManager];//文件管理实例类

//[NSUserDefaults standardUserDefaults];//应用程序设置

//[NSURLCache sharedURLCache];//请求缓存实例类

废话不多说,直接上代码:

oc中:

.h文件

.m文件:

或者:

swift中:

注意: 不管哪种写法都要注意将 init() 方法私有化。因为在 Swift 中,所有对象的构造器默认都是 public,需要重写 init 让其成为私有的,防止其他对象使用这个类的默认的'()'初始化方法来创建对象。

上一篇 下一篇

猜你喜欢

热点阅读