内存攀升,但代码中没有任何内存泄漏,发生在iPhone 3G,SDK 3.0中

时间:2009-07-22 09:48:47

标签: iphone iphone-sdk-3.0 memory-leaks

我发现在iPhone 3G设备上运行基于opengles的程序时,内存不断增长而代码中没有分配任何内存。

从仪器复制:

    Instances / Responsible / Responsible Caller
    ------------------------------------------------------------
    GeneralBlock-8 / QuartzCore / x_list_prepend_
    GeneralBlock-56 / QuartzCore / CAImageQueueCollect

  以下是有关同一问题的链接link

  有没有办法解决它或只是不管它?

谢谢。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题但后来我意识到虽然存在一些泄漏,但该工具并未显示任何泄漏。

与以下情况类似:

@property(nonatomic,retain) NSMutableArray *arr;
self.arr = [[NSMutableArray alloc] init];

在dealloc中:

[self.arr release];

这是工具无法预测的泄漏。

创建数组时,它的保留计数为1,当您使用自身的setter方法时,它会将其增加到2。但你只是发布一次。

所以正确的做法是:

NSMutableArray *tempArr = [[NSMutableArray alloc] init];
self.arr = tempArr;
[tempArr release];

在dealloc中:

[self.arr release];

查看此问题是否可以解决您的问题。