控制台将UIView显示为null,但它仍然表现得像它一样

时间:2014-03-23 03:15:59

标签: ios objective-c memory-management automatic-ref-counting

我正在调试一个问题,点按状态栏会UITableView滚动到顶部。我检查了scrollsToTop并且它被设置为是,所以很自然地我开始寻找是否有任何UIViews在它之上。

罪魁祸首是我引进的UIView,其大小与UIViewController的视图相同。我没想到要检查那里,因为当我记录它时,它说它是零。

同样如此:

enter image description here

但是,当我打电话给removeFromSuperView时,滚动到UITableView顶部的效果非常好! 的这里

enter image description here

我进行了三重检查,这是唯一一个位于滚动条顶部的UIView,那么是什么给出了?它说它无论如何都是无效的。我也在使用ARC。我猜我想要nil,而不是null。我在想如果我将它设置为nil,它会在ARC下将保留计数设置为0。也许在某处还有一个参考视图?

1 个答案:

答案 0 :(得分:0)

settingsView设置为nil并不会将其从超级视图中删除。它只是弄清楚你对它的引用。 ARC或没有ARC,超级视图保留settingsView,因此它仍然覆盖您的状态栏,除非您明确删除它。您可以尝试更改框架,使其不再覆盖状态栏。

我建议你试试SparkInspector(http://www.sparkinspector.com/)。解决这些问题真是太棒了。