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

如何在iphone中取消UITableview重新加载数据功能,iphone,Iphone,在我的应用程序中,我从一个ViewController推送到另一个ViewController。在该页面中,我启动了一个计时器,每1秒更新一次UITableview(使用UITableview-reloaddata) 我已启动视图中的计时器将出现功能,并使视图中的计时器无效将消失 但当计时器运行时,当我回到viewcontroller时,我的应用程序迅速崩溃 请帮帮我?先谢谢你 我的猜测是,当我推回viewcontroller时,时间表会重新加载到上一个viewcontroller中,这会导致崩

在我的应用程序中,我从一个ViewController推送到另一个ViewController。在该页面中,我启动了一个计时器,每1秒更新一次
UITableview
(使用
UITableview-reloaddata

我已启动
视图中的计时器将出现
功能,并使
视图中的计时器无效将消失

但当计时器运行时,当我回到viewcontroller时,我的应用程序迅速崩溃

请帮帮我?先谢谢你


我的猜测是,当我推回viewcontroller时,时间表会重新加载到上一个viewcontroller中,这会导致崩溃。我正在使用try-catch,但没有任何区别。当我们不在该页面时,我们可以停止重新加载tableview吗?

您的应用程序崩溃的主要原因是,当您从另一个ViewController返回到另一个ViewController时,您的表视图在计时器仍处于活动状态(正在尝试更新表视图)之间获得释放,当您访问释放对象时,应用程序将崩溃。所以你需要在正确停止计时器之前,如果计时器有效,就将其置零。 我希望我的回答能对你们有所帮助。

你们强烈需要在你们班的dealloc方法中向所有计时员发送失效消息

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

}

在dealoc中使计时器无效是没有意义的。根据docs here(),NSTimer持有对target的强引用,直到它失效为止。因此,在对象所持有的计时器失效之前,对象永远不会到达dealloc。