我的应用程序正在加载第一个视图(用于登录Web服务)。登录成功后,它会执行CATransition(基本kCATransitionFromRight)以显示第二个视图并隐藏第一个视图。我已将转换的委托设置为self,因此我可以使用-(void)animationDidStop:(CATransition *)theAnimation finished:(BOOL)flag
。
当调用该方法时(转换结束后)我想释放第一个视图,因为我不再需要它了。但是,当我拨打[firstView release]
(在animationDidStop:
中)时,保留计数似乎没有变化。我使用[loginView retainCount]
来检查这个,因为我知道它并不总是可靠的我想知道:我这样做了吗?
谢谢。
答案 0 :(得分:1)
取自“Cocoa Touch for iPhone OS 3”一书的方法类似 他们设置动画删除旧的子视图,添加新的子视图,然后提交动画。
答案 1 :(得分:0)
Jilouc 在他的评论中是对的,忘记查看“retaincount”......
如果你想确保你的对象视图firstView只是添加一个
NSLog(@"i'm removing myFirstView");
在其
中-(void)dealloc{
}
...方法
如果您在调试器控制台窗口中获得NSLog,那么请确保以正确的方式删除/释放它...
顺便说一下......正确的方法可能是这样的:在animationDidStop中:
if (firstView!=nil){
[firstView.view removeFromSuperview];
[firstView release];
firstView=nil;
}