【问题标题】:How use object after release?释放后如何使用对象?
【发布时间】:2011-05-13 11:26:05
【问题描述】:

h 中的 foo 声明。文件

我做[foo release]操作

接下来我需要第二次使用 foo。怎么样?

【问题讨论】:

  • 如果你知道你会再次需要它,为什么还要发布它?
  • 嗯,在你完成之前不要release
  • 除非他想要一个不同的foo在那里
  • 我建议你买一本关于 Objective-C 和/或 Cocoa / Cocoa Touch 的书,从头开始学习。
  • 应该可以。如果您确定没有,请发布您的代码,以便我们向您展示问题所在。

标签: iphone objective-c memory-management


【解决方案1】:

您不能在对象被释放后重用它。

在第二次操作完成之前,您绝对不能释放它。

【讨论】:

    【解决方案2】:

    如前所述,您不能在对象被释放后使用它们。当他们的retainCount 变为零时,就会发生重新分配。如果由于某种原因您无法删除该[foo release] 调用,则必须事先调用[foo retain]。如果您的第二次使用是在不久之后,您也可以尝试拨打[foo autorelease] 而不是[foo release]

    这里有一个非常好的 Objective-C 内存管理演练:Stanford's cs193p Lecture 4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 2021-02-12
      • 1970-01-01
      相关资源
      最近更新 更多