如何解决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”对象。
请阅读可可记忆管理指南。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。