【发布时间】:2011-02-04 15:52:26
【问题描述】:
我有一个带有一些视图元素的 NSMutableArray。
我从视图层次结构中删除视图,然后检查数组的保留计数,它返回 1。然后我发送 [array release] 但代码转储为 EXC_BAD_ACCESS。
我看到数组中有元素,但代码仍然转储。
这是我在调试过程中发现的。该数组包含所有 100 个对象(数组计数返回 100),并且在调试器上看到的内容返回元素的“超出范围”。此外,由于数组位于视图层次结构中,以下代码将保留计数减少了 2:
for (Liv *view1 in viewArray){
NSLog(@"view count = %d", [view1 retainCount]);
[view1 removeFromSuperview];
NSLog(@"view count = %d", [view1 retainCount]);
}
【问题讨论】:
-
甚至 [array removeAllObjects] 转储
标签: objective-c memory uiview nsmutablearray memory-leaks