【问题标题】:When and why do I need to release objects?何时以及为什么需要释放对象?
【发布时间】:2012-04-30 16:40:13
【问题描述】:

我很想知道 realeasing 对象的真正重要性是什么,什么时候应该这样做。还有,当你改变场景时,它会自动释放所有东西,还是它们还在记忆中?

谢谢

【问题讨论】:

  • 如果您希望自己不需要知道这类问题,那么请务必开始使用 ARC(自动引用计数)。有关更多信息,请参阅我的博客:learn-cocos2d.com/tag/automatic-reference-counting
  • @LearnCocos2D 谢谢,我现在正在看视频,但我想知道 ARC 是否是所有情况下的最佳解决方案。有没有不需要的情况?

标签: iphone objective-c ios cocos2d-iphone release


【解决方案1】:

这取决于,你应该只释放你拥有的对象。您拥有通过alloccopymutableCopynew 创建的对象。当您不再需要它们时释放它们总是一个好主意。

您应该先阅读苹果提供的memory management documentation

但是如果你使用ARC,那么你就不需要释放对象,因为这是编译时的阻碍。

【讨论】:

    【解决方案2】:

    更改时的 CCScene 将仅自动释放您添加到其中的子类,即 CCNode 子类。如果你通过代码保留了任何对象,你必须在dealloc方法中释放它

    【讨论】:

      【解决方案3】:

      好吧,我是 Objective c 的新手,但我想提一提的是,当苹果提供了一个名为 ARC 的令人敬畏的功能时,为什么还要为分配、释放或保留而烦恼。 ARC 本身负责内存管理问题。 所以在我看来,所有那些只做编码工作的开发人员都把休息留给了 ARC。

      【讨论】:

      • @akuritsu:有关 ARC 或任何其他内容的更深入信息,您可以随时在 Google 上搜索。因为 dis 不是 v 应该提供教程的站点。顺便说一句,因为您已要求提供更多信息,我将引导您查看教程。按照以下链接了解 ARC 的功能。 longweekendmobile.com/2011/09/07/…
      猜你喜欢
      • 2014-09-10
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多