【问题标题】:NSArray - Memory Leak how to?NSArray - 内存泄漏怎么办?
【发布时间】:2011-05-31 19:45:06
【问题描述】:

我有返回 NSArray 的函数,但它会产生内存泄漏,因为我无法在返回行之后释放数组,我该如何释放它? 谢谢。

-(NSArray *)readDataFromDatabase
{

   return NSArray;

}

【问题讨论】:

    标签: iphone objective-c cocoa-touch memory-leaks


    【解决方案1】:

    返回前自动释放数组:

    - (NSArray*) readDataFromDatabase 
    {
      // option 1: create an auto-released array
      NSArray* a = [NSArray arrayWithObjects: ...];
      return a;
    
      // option 2: autorelease manually
      NSArray* aa = [[[NSArray alloc] initWithObjects: ...] autorelease];
      return aa;
    }
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 我做了,返回 [arrayNextQuestion autorelease];但它会使应用程序崩溃。
      • 知道了。我在数组之前释放数组内的对象。现在我明白了 autorelease 所做的一切,而不仅仅是数组。泄漏已修复。非常感谢。
      猜你喜欢
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2018-07-27
      • 2011-10-04
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      相关资源
      最近更新 更多