工作问题小记 navigation push和popviewcontroller dealloc问题
2013-05-22 18:03
429 查看
事件,在instruments检查内存泄漏时发现其中一个viewcontroller在navigation做pop操作后未做dealloc,导致内存泄漏
push操作代码如下:
ViewController_leaveAMessage *leaveMessage = [[ViewController_leaveAMessage
alloc]
initWithNibName:@"ViewController_leaveAMessage"
bundle:nil];
leaveMessage.toId =
self.friendRS.userId;
[self.navigationController
pushViewController:leaveMessage animated:YES];
[leaveMessage
release];
pop操作后viewcontroller记述理应为0,从而调用dealloc。但是这断点后发现pop后未调用dealloc,说明该viewcontroller在其他地方还有引用。可是冲上面代码看出,正常情来说不该出该问题。后在push操作前后加log查看retainCount,发现该viewcontroller在push后retainCount增加了6,push其他viewcontroller其retainCount仅增加5.
其后逐条删除该viewcontroller中得viewdidload方法中得代码发现,其中因在viewdidload中执行
timer = [NSTimer
scheduledTimerWithTimeInterval:0.3
target:self
selector:@selector(showLblTimeRecorderOrPlayer)
userInfo:nil
repeats:YES];
导致该viewcontroller得retainCount在push操作后多加 1 。 总:timer应在pop前invalidate。navigation得push操作在操作中就会执行相应viewcontroller得viewdidiload。
push操作代码如下:
ViewController_leaveAMessage *leaveMessage = [[ViewController_leaveAMessage
alloc]
initWithNibName:@"ViewController_leaveAMessage"
bundle:nil];
leaveMessage.toId =
self.friendRS.userId;
[self.navigationController
pushViewController:leaveMessage animated:YES];
[leaveMessage
release];
pop操作后viewcontroller记述理应为0,从而调用dealloc。但是这断点后发现pop后未调用dealloc,说明该viewcontroller在其他地方还有引用。可是冲上面代码看出,正常情来说不该出该问题。后在push操作前后加log查看retainCount,发现该viewcontroller在push后retainCount增加了6,push其他viewcontroller其retainCount仅增加5.
其后逐条删除该viewcontroller中得viewdidload方法中得代码发现,其中因在viewdidload中执行
timer = [NSTimer
scheduledTimerWithTimeInterval:0.3
target:self
selector:@selector(showLblTimeRecorderOrPlayer)
userInfo:nil
repeats:YES];
导致该viewcontroller得retainCount在push操作后多加 1 。 总:timer应在pop前invalidate。navigation得push操作在操作中就会执行相应viewcontroller得viewdidiload。
相关文章推荐
- navigation push和popviewcontroller dealloc问题
- viewController被POP后不调用dealloc的问题
- popToViewController、pushViewController问题
- UINavigationController的popViewControllerAnimated问题
- NavigationController popToViewController 问题
- iOS8 自定义UITabBar (使用popToViewController导致的UITabBarButton重叠的问题)
- UINavigationController的popViewControllerAnimated问题
- 问题:viewController不会调用dealloc()不会销毁
- Push/Pop ViewController 时右上角会有奇怪黑影冒出的问题
- UINavigationController的popViewControllerAnimated问题
- [iOS][兼容性]iOS7 pushViewController,popViewControllerAnimated存在的问题
- iOS8 自定义UITabBar (使用popToViewController导致的UITabBarButton重叠的问题)
- 使用NStimer后 popViewController之后 不dealloc
- 请教popViewControllerAnimated的问题
- iOS8 自定义UITabBar (使用popToViewController导致的UITabBarButton重叠的问题)
- UINavigationController的popViewControllerAnimated问题
- popViewControllerAnimated的问题
- iOS 视图切换问题 popViewControllerAnimated 视图刷新问题
- popViewControllerAnimated 后的刷新问题
- popViewControllerAnimated 无效的问题解决