大佬教程收集整理的这篇文章主要介绍了iphone – iOS开发:为什么我的视图控制器的保留计数如此奇怪?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是在计时器回调中创建视图控制器的代码,显示其保留计数,并将其推送到导航堆栈…
-(void)updateCountDownTimer //Defined in MyViewController_A class { [self setTimeRemaining:([self timeRemaining] - 1)]; [[self countDownLabel] setAlpha:1]; [[self countDownLabel] setText:[NSString StringWithFormat:@"%d",[self timeRemaining]]]; //Fade out the current time [UIView beginAnimations:@"FadeAnimation" context:nil]; [UIView setAnimationDuration:1]; [[self countDownLabel] setAlpha:0]; [UIView commitAnimations]; if ([self timeRemaining] == 0) { MyViewController_B *myvc_b = [[MyViewController_B alloc] initWithNibName:@"MyView_B_iPhone" bundle:nil]; [[self navigationController] pushViewController:myvc_b animated:YES]; NSLog(@"updateCountDownTimer: %d",[myvc_b retainCount]); [myvc_b release]; [[self countDownTimer] invalidate]; [[self countDownLabel] setHidden:YES]; } }
这是在按下暂停按钮后将视图控制器弹出导航堆栈的代码…
- (void)pauseButtonPressed:(id)sender { //Stop the timer [puzzleTimer invalidate]; NSLog(@"pauseButtonPressed before pop: %d",[self retainCount]); //return to the prevIoUs view [[self navigationController] popViewControllerAnimated:YES]; NSLog(@"pauseButtonPressed after pop: %d",[self retainCount]); }
2010-12-02 17:50:38.062 MyApp[821:307] updateCountDownTimer: 5 2010-12-02 17:50:40.453 MyApp[821:307] pauseButtonPressed before pop: 2 2010-12-02 17:50:40.462 MyApp[821:307] pauseButtonPressed after pop: 4
我是iOS开发的新手,但代码对我来说似乎很简单,所以我不知道我缺少什么.
非常感谢您的智慧!
更新:看起来Leaks仪器报告了将前一个视图控制器推入堆栈的代码行上的泄漏(即负责推送视图控制器的视图控制器).代码再次非常简单,所以我不知道它为什么报告泄漏……
@H_211_9@myViewController_A *myvc_a = [[MyViewController_A alloc] initWithNibName:@"MyView_A_iPhone" bundle:nil]; [[self navigationController] pushViewController:myvc_a animated:YES]; //<--Leak being reported here [myvc_a release];
*更新:*发现问题,就像每个人都在说和下面评论中发布的链接中显示的问题一样,我的活动对象仍然引用我的视图控制器,这阻止了它的解除分配.在我的情况下,我有两个定时器瞄准我的视图控制器,这些定时器在我从堆栈弹出视图之前没有失效,这意味着有两个活动对象仍然引用视图控制器.这是我在Apple文档中找到的一个片段,揭示了这个问题……
无论如何,再次感谢所有帮助过的人!
以上是大佬教程为你收集整理的iphone – iOS开发:为什么我的视图控制器的保留计数如此奇怪?全部内容,希望文章能够帮你解决iphone – iOS开发:为什么我的视图控制器的保留计数如此奇怪?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。