为什么要排出自动释放池而不是释放它?
答案 0 :(得分:5)
一个原因是垃圾收集(在iPhone上不可用)
release是一个启用GC的无操作,但drain提供了垃圾收集器的提示
来自docs:
垃圾收集
在垃圾收集环境中,不需要自动释放池。但是,您可以编写一个框架,该框架旨在在垃圾收集和引用计数环境中工作。在这种情况下,您可以使用自动释放池向收集器提示该集合可能是合适的。在垃圾收集环境中,如果需要,向池中发送排泄消息会触发垃圾回收;然而,释放是一种无操作。在参考计数环境中,排水与释放具有相同的效果。因此,通常情况下,您应该使用排水而不是释放。
答案 1 :(得分:-2)
这里最好的答案是“因为Apple告诉你”。
遵循Apple的“最佳实践”是提高向前兼容机会的最佳方式。