我有太多次释放视图的问题。虽然理论上很简单,因为我将uiview移动到uiview,uiview是uiview的一个子类,并且具有动画效果等等,但这不是我可以轻易修复的。它只在一定条件下崩溃10%,即使在这些条件下也只有30%时间崩溃。由于保留计数而释放对象
换句话说,它有点复杂。有时在我的dealloc方法中,这个UIView的保留计数已经是1(当视图被释放时它会被释放),所以不应该再次被释放。因此,我所做的是:
if ([mainView retainCount] > 1) {
NSLog(@"released");
[mainView release];
}
洽与释放通常被称为崩溃,但并不总是和它发生相当多的时候我有时会想到它崩溃。我已经检查了这个代码的泄漏,并且它永远不会泄漏。
现在的实际问题......由于其保留数量而释放某些内容是否是错误的?我尝试了很多不同的方法来解决这个问题,到目前为止,这是唯一可靠且无泄漏的方法。
编辑:如果没有那么有什么更好的方法来复制一个UIView到另一个UIView?
mainView = newView;
[newView release];
我试着释放mainView,然后调用newView上的副本,但这崩溃。除了保留计数有时候比预期的低1,即使它从来没有在代码中任何其他地方释放,以上也是完美的。
更新的问题 – Rudiger 2010-10-12 07:16:21
您需要展示更多代码,并告诉我们您真正想要做什么。复制视图有点模糊。 – Eiko 2010-10-12 07:20:11
没有什么更多。有两个复杂的UIViews,如果我需要创建一个新的复杂视图,我创建一个本地UIView,创建UIView的内容,在它们之间生成动画getView = newView然后释放newView。 – Rudiger 2010-10-12 07:22:58