gpt4 book ai didi

ios - 观看 OS2 NSTimer 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:42 28 4
gpt4 key购买 nike

我正在开发一个应用程序,当 watch 被激活时,我需要启动一个计时器(使用 NSTimer)。使用计时器,我向 iPhone 询问一些信息(大约每 1 秒一次,最多 5 秒一次)。我用它来启动计时器

timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(myfunction) userInfo:nil repeats:NO];

在“myfunction”函数中,我下次重新启动定时器。

- (void) myfunction
{
//Here I update a label text
// [...]

[timer invalidate];
timer = nil;

counter++;
if(counter<5)
{
timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(myfunction) userInfo:nil repeats:NO];
}
}

我的问题是,在模拟器中一切正常,但在真正的 watch (Watch-OS2 GM)中,计时器有时不启动或有时启动但只启动一次,之后似乎卡住了!我看到这个是因为我在显示计数器的每个耗时段更新 watch 中的标签,并且我确定所有内容都在“将激活”功能中初始化。我不明白为什么。有人有同样的问题吗?

最佳答案

来自 documentation

Use your interface controller’s init and awakeWithContext: methods to load any required data, set the values for any interface objects, and prepare your interface to be displayed. Do not use the willActivate to initialize your interface controller. The willActivate method is called shortly before your interface is displayed onscreen, so you should use that method only to make last-minute changes. For example, you might also use that method to start animations or start other tasks that should only happen while your interface is onscreen.

那么,你是用什么方法来实例化timer的呢?

确保使用willActivate 方法并使用didDeactivate 方法来清理界面并将其置于静止状态。例如,使用此方法使计时器失效并停止动画。

希望对你有帮助

关于ios - 观看 OS2 NSTimer 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32689086/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com