numberWithInt发生内存泄漏?

问题描述

| 我认为我的程序在此循环的最后一行中正在泄漏内存,但我不知道为什么。我没有调用分配。谁能解释一下?我知道这可能是一个非常明显的答案,但我只是开始使用目标C。仅仅是numberWithInt调用添加了+1保留或其他功能?谢谢
for (int k=0; k<=27; k++) {
    NSNumber *zero= [NSNumber numberWithInt:0];
    [randomUsed insertObject:zero atIndex:k];
    [alphaKeys insertObject:zero atIndex:k];
}
    

解决方法

        您在此处的代码没有任何泄漏。 您必须考虑所有权。您在这里没有
zero
,因为它不是从
alloc
new
返回的。由于您不拥有它,因此不需要4英镑。 您在想的是ѭ5增加了ѭ6,这是事实。当您将“ 1”插入数组时,“ 8”和“ 9”将保留零对象。在这种情况下,它是拥有它的数组,而不是您。他们需要释放它,而不是您。 如果有泄漏,则泄漏的是数组本身,而不是“ 1”对象。 请阅读可可记忆管理指南。