我有一个表示网格的2D数组(数组中的每个元素都是一个元素是单元格的数组)。
我还有一个包含网格的数组“ARRAY_X”,即包含这个2D数组(网格)的数组。我正在使用ARC,我正在删除“ARRAY_X”中的元素(删除带有removeObjectAtIndex:0
的第一个元素)并添加新元素(最后带有addObject:...
)。
问题在于看到xCode中的内存使用情况,每次从“ARRAY_X”中删除en元素并添加一个新元素时,内存会增加(由于新元素,但另一个元素已被删除... )
我尝试删除2D数组中的所有元素,即:
for (int row=0; row<[[ARRAY_X objectAtIndex:0] count]; row++) {
[[[ARRAY_X objectAtIndex:0] objectAtIndex:row] removeAllObjects];
}
[[arrGrids objectAtIndex:0] removeAllObjects];
[ARRAY_X removeObjectAtIndex:0];
但记忆力不断增加。我该如何释放这段记忆?
答案 0 :(得分:0)
你的分配器很可能在你身上耍花招。 您应该运行“泄漏”以了解您是否真的有泄漏,并“堆积”以了解您的软件正在进行的分配。
修改强>
顺便说一下,我认为[ARRAY_X removeObjectAtIndex:0]
会为你做循环,因为它会将-release
发送到该对象,而该对象又会删除其中的集合,除非有其他人拥有显然是一个参考(但后来我认为你可能不想破坏他脚下的内容)。