iOS实现长寿命对象的方式
-
单例
单例模式是限制一个类只初始化一个对象的一种设计模式。在实践中,初始化常常在应用启动不久后执行,而且这些对象不会被销毁。一旦创建,单例会一直存活到应用关闭。
在什么情况下使用单例:
- 队列操作(如日志和埋点)
- 访问共享资源(如缓存)
- 资源池(如线程池或连接池)
单例的指导原则:
-
尽可能避免使用单例
-
识别需要内存的部分,如用于埋点的内存缓冲区(在尚未将数据同步到服务器前使用)。寻求减少内存的方法。注意,你需要将减少内存与其他事情做权衡。减小缓冲区意味着更多的服务器通信。
-
尽量避免对象级的属性,因为它们会与对象共存亡。尽量使用本地变量。
-
全局变量
使用全局变量,必须满足以下条件:
- 没有被其他对象所持有
- 不是常量
- 整个应用只有一个,而不是每个组件一个
如果某个变量不符合这些要求,那么它不应该被用作全局变量。