单例:
在整个项目中只有一个实例,并提供一个类方法供全局调用
1.单例的优点
单例可以保证系统中该类有且仅有一个实例,所以很便于外界访问.
因为其上面的特点,对于项目中的个别场景的传值,存储状态等等更加方便
2.单例的缺点
单例实例一旦创建,对象指针是保存在静态区的,那么在堆区分配空间只有在应用程序终止后才会被释放
单例不能继承
在写项目的时候,我们实际用到了很多系统给我们提供的单例类;
//[UIApplication sharedApplication]; //应用程序实例类
//[NSNotificationCenter defaultCenter];//消息中心实例类
//[NSFileManager defaultManager];//文件管理实例类
//[NSUserDefaults standardUserDefaults];//应用程序设置
//[NSURLCache sharedURLCache];//请求缓存实例类
废话不多说,直接上代码:
oc中:
.h文件
.m文件:
或者:
swift中:
注意: 不管哪种写法都要注意将 init() 方法私有化。因为在 Swift 中,所有对象的构造器默认都是 public,需要重写 init 让其成为私有的,防止其他对象使用这个类的默认的'()'初始化方法来创建对象。
网友评论