考虑我们正在实施我们自己的线程与大量的自动释放对象。如果是/否,是否必须在此场景中使用autorelease池?带有大量自动释放对象的线程是否必须在此方案中使用自动释放池,如果是/否为什么?
0
A
回答
4
在any thread that you create上必须有一个自动释放池,因为Cocoa internals expect有一个就位,如果它不存在,你将泄漏内存。
可可总是期待有一个可用的自动释放池。如果池不可用,自动释放的对象不会被释放,并且您的应用程序会泄漏内存。如果您在池不可用时发送自动释放消息,Cocoa会记录一条合适的错误消息。
的应用程序,在Objective-C框架通常链接必须建立在他们的每一个线程中的至少一个自动释放池。
3
即使只有一个自动释放对象,它也是强制性的,否则它会泄漏。
相关问题
- 1. 释放返回的对象还是我必须使用自动释放
- 2. 如果该线程来自线程池,Task.Wait是否会释放调用线程?
- 3. 是否有必要在dealloc中释放此对象?
- 4. 释放或自动释放的对象
- 5. 是否有必要在GCD的ARC下创建自动释放池?
- 6. “自动释放没有合适的泳池”是什么意思?
- 7. 什么时候释放了一个自动释放的对象?
- 8. Objective-C自动释放池不释放对象
- 9. Objective-C块是否自动释放?
- 10. [自动释放]是否可以接受?
- 11. RestTemplate是否会自动释放连接?
- 12. EGLContext资源是否自动释放?
- 13. Object Pascal:是否必须释放所有对象(类)?
- 14. 我是否需要释放此对象?
- 15. 我是否必须释放弧中的无弧对象?
- 16. 退出应用程序时,是否必须释放指针或自动完成?
- 17. 以后自动释放或释放是否更好?
- 18. 自动释放池dillema
- 19. 外部自动释放池
- 20. 自动释放池块
- 21. iOS自动释放池块
- 22. 自动释放池调试
- 23. Objective-C自动释放池
- 24. 自动释放对象
- 25. UIAcivityIndicatorView是否自行停止动画,如果它被移除/释放/释放
- 26. 是否可以将对象添加到特定的自动释放池?
- 27. 为什么在自动释放池之外使用__weak引用它们时不会释放对象?
- 28. 我应该在iPhone OS中排放还是释放一个自动释放池?
- 29. 关于自动释放/释放和[池释放]
- 30. 我是否需要保留自动释放对象?
没有自动释放池的真正的自动释放对象是,嗯... –
嗯,它不是_quite_强制性的。它完美地定义了会发生什么:对象泄漏和消息被记录。虽然这通常不是你想要的,但这并不意味着它不可能是你想要的...... – abarnert