单例
整个程序中某个类只存在一份实例;
一旦创建,程序结束后才会销毁回收内存;
单例对象指针保存在静态区,单例对象存在堆中分配的内存空间;
苹果本身API存在的单例:
1 | UIApplication |
优点:
整个程序中只会实例化一次,程序出现问题比较容易定位;
只会实例化一次,节省内存;
缺点:
不能被继承,没有子类,不能扩展和重写;
程序运行过程中一直占着内存,单例创建过多时和闲置时会占用内存资源;
单例的创建方式
@synchronized
1 | .h |
dispatch_once
为了数据和线程安全,苹果官方推荐使用这种方式进行创建单例;
1 | .h |
end