2011-05-24 69 views
-1

虽然我的iPhone代码没有ANALYZE问题,但当我运行乐器寻找内存泄漏时,我似乎看到了很多。一个基本上就像我使用的自定义类,比如MyCustomClass。仪器基本上是说:从泄漏块这是代码不正确的内存管理? (re NSMutableArray addObject)

仪器摘要 - 历史

  • 的malloc - 当我创建它
  • 自动释放 - 这是我做同样喜欢的页头
  • 保留 - 似乎将其添加到其他地方的一个NSMutableArray
  • 发布 - 但从GrahicServices - GSEventRunModal(这不是我...)

我已经自动释放的对象,所以我不知道是否有在路上的问题,我通过ADDOBJECT

把它添加到一个NSMutableArray

的问题 - 我的总的问题是,是否是,做一个“ADDOBJECT”时到一个NSMutableArray,对于一个自动发布的对象,接收数组的代码在完成时需要执行什么特定步骤?是这样的情况,即使通过我的对象是autoreleased,将它添加到数组保留,所以也许当我完成了NSMutableArray我需要手动迭代数组中的所有对象,并释放它们?

感谢

+2

这个问题很不清楚,你介意分享一些代码吗? – 2011-05-24 04:09:55

+0

malloc用于分配内存块。你可能意味着alloc。 – jtbandes 2011-05-24 04:10:26

+0

@jtbandes - 当在乐器中查看历史时,第一行事件类型表示Malloc。我会更新问题以突出显示表格 – Greg 2011-05-24 04:18:25

回答

2

如果您在所有你已经添加到您的数组对象的调用autorelease,没有额外的工作,为您在内存管理方面做。 NSMutableArray将管理添加到其中的对象在内存中的状态(例如,在从阵列中删除对象(通过显式释放它或释放阵列时)添加和释放它们时保留它们。所有你需要做的就是确保你在完成之后释放数组。