iPhone中如何取消UITableview重新加载数据功能

问题描述 投票:0回答:2

在我的应用程序中,我已从一个视图控制器推送到另一个视图控制器。在该页面中,我启动了一个计时器并每 1 秒更新一次

UITableview
(使用
UITableview reloaddata
)。

我已在

viewwillappear
函数中启动计时器,并在
viewwilldisappear
中使计时器无效。

但是当计时器运行时,当我回到视图控制器时,我的应用程序迅速崩溃。

请帮助我?预先感谢...

我的猜测是,当我推回视图控制器时,时间表会在之前的视图控制器中重新加载,此时它会崩溃。我正在使用 try catch 但没有任何区别。当我们不在该页面时,我们可以停止表格视图重新加载吗?

ios iphone
2个回答
0
投票

您的应用程序崩溃的主要原因是,每当您从 anotherViewController 返回到 oneViewController 时,您的表视图在您的计时器仍处于活动状态并试图更新 tableView 之间被释放,并且当您访问释放对象时,应用程序将获得坠毁了。因此,您需要在正确停止计时器之前,如果计时器有效,则将其归零。 希望我的回答对你有帮助。


0
投票

您强烈需要在类的 dealloc 方法中向所有计时器发送 invalidate 消息

- (void)dealloc
{
    if ([_someTimer isValid]) [_someTimer invalidate];

}
© www.soinside.com 2019 - 2024. All rights reserved.