Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何在tabbar iPhone应用程序中管理NSTimer?_Iphone_Ipad_Ios_Nstimer - Fatal编程技术网

我应该如何在tabbar iPhone应用程序中管理NSTimer?

我应该如何在tabbar iPhone应用程序中管理NSTimer?,iphone,ipad,ios,nstimer,Iphone,Ipad,Ios,Nstimer,我有一个基于tabbar的应用程序,有三个选项卡,其中一个是运行时钟。为了给时钟UI设置动画,我使用每秒触发一次的NSTimer。如果用户将在各个选项卡中切换,我应该如何管理此计时器 我是否可以在应用程序首次运行时使用scheduledTimerWithTimeInterval创建和计划计时器,并在应用程序关闭时让计时器停止运行?或者我应该在时钟选项卡的rootview控制器中为计时器维护一个实例变量,并使用addTimer:forMode:和invalidate 如果是梯形图,我应该多久添加一

我有一个基于tabbar的应用程序,有三个选项卡,其中一个是运行时钟。为了给时钟UI设置动画,我使用每秒触发一次的NSTimer。如果用户将在各个选项卡中切换,我应该如何管理此计时器

  • 我是否可以在应用程序首次运行时使用
    scheduledTimerWithTimeInterval
    创建和计划计时器,并在应用程序关闭时让计时器停止运行?或者我应该在时钟选项卡的rootview控制器中为计时器维护一个实例变量,并使用
    addTimer:forMode:
    invalidate
  • 如果是梯形图,我应该多久添加一次计时器并使其无效?在my
    视图中,时钟选项卡的rootview控制器的方法将出现
    视图将消失
    ?其他地方

  • 非常感谢你的智慧

    我将执行以下操作:

    如果出现时钟视图->将时钟设置为当前时间,然后启动一个计时器,每秒钟更新一次时钟:

    clockRefreshTimer = [NSTimer scheduledTimerWithTimeInterval: 1 target: self selector:@selector(updateClockView) userInfo:nil repeats:YES]
    
    如果时钟视图即将消失,则使计时器无效

    [clockRefreshTimer invalidate];
    
    这样您就不会进行不必要的更新


    希望我能帮上忙,
    sam

    什么@samsam说的,再加上这一点:设置为1秒的计时器不能保证精确地在第二秒触发。一旦一秒钟过去,它将被安排在下一个可用的处理时间。在许多情况下,它会非常接近它预定的确切时间,但很少会精确到那时,如果应用程序忙于其他事情,它可能会关闭相当多

    如果你的时钟真的每秒钟跳动一次(如果它不跳动的话,它就不会是一个时钟了),这真的很关键,那么你希望你的计时器比这更频繁地触发,并在它注意到它正在观看的时间值发生变化时更新UI