繁体   English   中英

隐形内存泄漏…iOS 4

[英]Invisible memory leaks… iOS 4

所以我的内存有问题。 似乎我没有适当地释放或释放对象,因为我在游戏中得到了微妙的内存积累。

我初始化所有这样的对象:

self = [super init];
if (self != nil) {
    //inititalize object
}

我在dealloc方法中释放所有对象,如下所示:

[object release], object = nil;

现在我觉得我应该提到我的游戏是基于视图的。 我有将子视图加载到一个称为“ currentView”的变量中的主视图。 我这样切换视图。

if (currentView != nil) {
    [currentView dealloc];
}
currentView = [[newView alloc] initWithVariables:vars];

我想知道问题出在我的对象的初始化和释放还是它的视图。 我还想知道可以用来追踪仪器中未出现的任何泄漏的任何策略。

我需要尽快提供此信息,如果您能提供帮助,我们将不胜感激。 谢谢。

编辑:当我通过仪器运行它显示我的应用程序使用的内存。 它有一个奇怪的模式。 当它加载第一个视图时,它从大约开始。 使用了17mb。 然后我切换到第二个视图,它上升到22mb。 现在,如果我回到第一个视图,它不会再下降到17mb,而是下降到大约20mb。 现在,当我继续在两者之间切换时,它会在22mb和20mb之间移动,并且几乎保持不变。 如何解释呢?

EDIT2:以上编辑中解释的模式在整个游戏中都是一致的。 由于这种一致性,我注意到我的游戏中每级泄漏70kb。 显然,当我的游戏保持在100mb以下时,这不会造成任何问题,因此,除非他们长时间玩我的游戏,否则这不是问题。

虽然,我仍然想知道如何找到70kb的泄漏。

您应该使用release而不是dealloc 每次对alloc调用都应与releaseautorelease相匹配; 在您的情况下,请release它,因为您想控制释放它的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM