美文网首页
IOS中单例怎么销毁,会造成内存泄露吗?

IOS中单例怎么销毁,会造成内存泄露吗?

作者: Mikayla321 | 来源:发表于2018-06-29 09:26 被阅读0次

单例创建对象一次,会在App被退出时被系统回收,不用担心内存泄漏的。

官方文档中是这么解释的:
" When an application terminates, objects may not be sent a dealloc message since the process’s memory is automatically cleared on exit—it is more efficient simply to allow the operating system to clean up resources than to invoke all the memory management methods."
大致的意思就是:当应用程序退出时,对象不会接受到一个dealloc消息,系统会自己清理所有的资源,Apple认为这样比去调用一个内存管理方法更有效率.
Cocoa With Love的Matt关于我提问的解答是这样的:
"You don't need to free data from a singleton -- it lasts until the program quits, so the dealloc method will never be invoked.

If you need to close a network connection, or something else that actually needs to be ended, you should do this in a "close" method and invoke the "close" method on the singleton in your applicationWillTerminate: method of your application delegate."
意思差不多和官方一样,应用退出时,dealloc方法不会被调用,并且他建议我避免在dealloc中去作网络或其他类似的必须终止的操作,而应该将这些操作放在applicationWillTerminate:中,以确定这些操作被执行.
所以关于这个问题的研究暂时就告一段落了,得出的结论是:
1.不用担心静态全局变量的内存的问题,系统会在应用程序结束之后,回收这些内存.
2.应用程序结束时会直接回收所有的程序运行中的资源,而不调用对象的dealloc方法.
3.不要将类似网络或文件的关闭(应该是任何)操作放在类的dealloc方法中执行.

https://blog.csdn.net/u010158696/article/details/51810695

相关文章

  • IOS中单例怎么销毁,会造成内存泄露吗?

    单例创建对象一次,会在App被退出时被系统回收,不用担心内存泄漏的。 https://blog.csdn.net/...

  • Android 性能优化

    几种造成内存泄露的场景 单例中引用的上下文Context,引用了Activity中的Context, 这样会造成内...

  • Android内存优化方向

    避免内存泄露内存泄露是造成OOM的最主要原因常见的内存泄露: 1. 单例 因为单例是全生命周期的,如果引用了非全...

  • 内存泄漏的场景,Handler机制

    内存泄露场景 单例造成的内存泄漏:单例模式的生命周期和应用一样长。单例中包含了一个其他对象的引用(比如contex...

  • Android内存泄露解析

    内存泄露的原因是引用还存在,无法及时释放内存,android的内存泄露主要是activity销毁不及时。 造成内存...

  • 何止学习Andoid内存泄漏优化

    一、Android内存泄露及优化 1、单例模式造成内存泄漏 单例的静态特性使得它的生命周期同应用的生命周期一样长,...

  • Android 开发常见的内存泄露

    1、单例造成的内存泄露 当调用getInstance时,如果传入的context是activity的context...

  • 内存泄露优化总结

    1、单例导致内存泄露 单例模式在Android开发中会经常用到,但是如果使用不当就会导致内存泄露。因为单例的静态特...

  • Android 常见内存泄漏

    一、单例造成的内存泄漏Android的单例模式非常受开发者的喜爱,不过使用的不恰当的话也会造成内存泄漏。因为单例的...

  • 单例设计模式

    单例模式优点 单例模式在内存中只有一个实例,减少了内存开支。特别是一个对象需要频繁的创建、销毁时,而创建与销毁的性...

网友评论

      本文标题:IOS中单例怎么销毁,会造成内存泄露吗?

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