【问题标题】:Where are the memory leaks in my for ... in loop with addObject我的 for 中的内存泄漏在哪里...在 addObject 循环中
【发布时间】:2011-12-16 10:18:39
【问题描述】:

以下循环中似乎存在一些内存泄漏:

NSMutableArray *array1 = [[NSMutableArray alloc] init];
for(SomeClass *someObject in array2){    //has already been populated;
    if (someObject.field == desiredValue){
        [array1 addObject:someObject];
    }
}
//EDIT:
//use array1 for very secret operations
[array1 release];

有什么想法吗?

【问题讨论】:

  • 为什么说它会泄漏内存?你确定它不是你代码的其他部分吗?
  • 你释放array2吗?问题可能就在那里。
  • 如果我说我肯定我会撒谎。但这就是当我双击泄漏报告时泄漏仪器引导我的地方。可能是错的,我对调试有点陌生。
  • 会不会是 array2 的对象在泄漏(例如添加到 array2 但之后从未释放)?

标签: ios memory-leaks nsmutablearray


【解决方案1】:

您是否正在释放您在 SomeClass 中的所有保留属性?确保在 dealloc 中释放所有保留的属性..确保您的 SomeClass 没有泄漏..

【讨论】:

  • 不错的想法,但泄漏仍然存在。尽管如此,修复了导致我的应用程序崩溃的问题,所以它再次可用,但泄漏中的红线仍然很烦人。
  • 你能用一些自定义的 SomeClass 重新创建泄漏(如果你不能发布你的原始类)并发布代码......据我所知,你的代码是完美的并且没有泄漏......
  • 我会的,但我现在脖子上呼吸着一个老板般的身影,所以既然它正在工作,我稍后会回来:) 谢谢你的时间!
猜你喜欢
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 2014-04-02
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多