问题标签 [nstimer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
882 浏览

iphone - iPhone:如何在特定时间播放声音?

我写了以下代码:

我想播放音频文件而不是振动 iPhone。那可能吗?

0 投票
2 回答
4700 浏览

objective-c - 无效和重新创建 NSTimer(s) 的问题

我在启动和停止 NSTimers 时遇到问题。文档说计时器被 [timer invalidate] 停止;

我有一个这样声明的计时器对象

-通常。

需要时,我的方法执行以下操作:

上面的一切工作正常。但是,一旦那个计时器完成了它的工作,我希望它自己失效。我使计时器无效,因为可以调用一个相等的递减方法,如果它仍然处于活动状态,它将与 incrementTimer 对抗。(以前,我注意到我的两个计时器,如果处于活动状态,则通过增加和减少值(一种战斗)来作用于同一个 ivar ......而不会崩溃)调用的选择器的工作方式如下:

我有一个相等的方法来减少电池计数。(前面提到)
由于我的程序设计:界面模拟了电压显示。当“机器”关闭时,我希望所有定时器都失效,不管电压值是多少。我通过检查计时器是否有效来做到这一点。

我遇到了许多“BAD_ACCESS”崩溃。错误的线路呼叫总是指向我的 [timer isValid] 呼叫。似乎如果计时器无效......指针也不存在。我知道 [timer invalidate] 消息会禁用计时器,然后将其从运行循环中删除,然后将其释放。我的理解是:根据它的命名约定,它是一个自动发布的对象。

我的想法是:如果我要发送保留消息,引用不应该仍然存在吗?我尝试了几种组合,带走了:

甚至代替:

我试过了 :

和:

我总是遇到同样的崩溃。感谢您对启动和停止 NSTimers 的任何帮助。

0 投票
1 回答
818 浏览

objective-c - NSTimer 间隔小于触发代码中的睡眠命令

我有一段代码我想重复执行,但可以暂停和恢复它。为此,我使用了一个 NSTimer,我可以根据需要停止和启动它。

在代码段中,我使用 sleep 命令等待更新(0.3 秒)。计时器每 0.5 秒触发一次。

理想的做法是保持停止和启动功能,并每 0.3 秒触发一次,但不必明确表示我希望它每 x 秒触发一次。0.5 是完全任意的,只是设置为 > 0.3。

如果我将计时器设置为每 0.01 秒触发一次,但将触发代码中的 sleep 命令保持为 0.3 秒,我会得到所需的行为吗?或者计时器是否会备份所有事件,产生意外结果(例如在我停止它后多次触发)?这样我可以让 0.3 秒的睡眠时间成为一个变量,并且每当我将它增加到 0.5 时都不必更改计时器。

或者有没有更好的方法来获得这个功能?

0 投票
3 回答
9483 浏览

iphone - 在线程上运行 NSTimer

我正在尝试使用 iPhone SDK 3.0 在线程上运行 NSTimer。我认为我做的一切都是正确的(新的运行循环等)。如果我在 viewDidDissappear 上调用 [timer invalidate] 虽然我收到此错误:

bool _WebTryThreadLock(bool), 0x3986d60: 试图从主线程或web线程以外的线程获取web lock。这可能是从辅助线程调用 UIKit 的结果。现在崩溃... 程序接收到信号:“EXC_BAD_ACCESS”。

这是我的代码:

当我删除使计时器无效的行时,一切正常。我不应该使它无效还是我犯了其他错误?

谢谢

0 投票
2 回答
835 浏览

objective-c - 带有菜单栏应用的 NSTimer

我正在开发一个简单的计时器应用程序,并且我创建了一个带有菜单的 NSStatusItem 并且我有一些更新计时器标签的 NSTextField 标签(http://cld.ly/e81dqm)但是当我单击状态项时NSTimer 停止(并停止更新标签).....我该如何解决这个问题?

编辑:这是启动计时器的代码:

timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerDidUpdate:) userInfo:nil repeats:YES];

0 投票
1 回答
174 浏览

time - 标签上的 NSTimer

我正在使用 iphone sdk,当用户单击按钮时我必须显示一个标签,但过了一段时间标签 deseapear,我可以这样做吗?

0 投票
2 回答
2179 浏览

iphone - 无限期地保留一个包含 NSTimer 的 NSThread?(苹果手机)

我的应用中有一些网络服务数据需要每 3 分钟更新一次。我尝试了一些方法,但上周在这里得到了一个非常好的建议,我不应该每 3 分钟建立一个新线程,然后尝试释放并同步所有不同的部分,以避免内存错误。相反,我应该有一个始终在运行的“工作线程”,但只有在我要求它时才进行实际工作(每 3 分钟一次)。

由于我的小型 POC 现在可以工作,因此我在该applicationDidFinishLaunching 方法中生成了一个新线程。我这样做是这样的:

好的,这将以秒为单位的更新间隔初始化“BackgroundUpdate”对象。在更新程序内部,现在只是这样:

我以前从未使用过这样的线程。我一直在“设置 autoReleasePool,开始工作,让你的 autoReleasePool 耗尽,然后再见”。

我的问题是,一旦initWithTimerInterval运行NSThread完成,它就会返回 updateModel 方法并排空其池。我想这与 NSTimer 有它自己的线程/运行循环有关吗?我希望线程继续让该testIfUpdateNeeded方法每 3 分钟运行一次。

那么我将如何让这个 NSThread 在我的应用程序的整个持续时间内保持活动状态?

感谢您提供的任何帮助/建议:)

0 投票
2 回答
4843 浏览

objective-c - 定时器无效

给出的这个声明的含义是什么?

0 投票
1 回答
108 浏览

iphone - 我是否信任 ObjectAlloc 或 Leaks 来分析我的 iPhone 应用程序?

当我使用“Leaks”(其中有一个 Object Alloc 部分)运行我的 iPhone 应用程序时,我的应用程序似乎适合内存分配。但是,当我仅使用 ObjectAlloc 工具运行它时,内存会随着应用程序运行其主计时器而稳步增加。(这是一个基于计时器的应用程序)。我不确定该相信什么。我只是想知道 ObjectAlloc 工具是否有任何可能与我有关的问题。也许与 NSTImer 有关?我在设备(不是模拟器)上运行它。谢谢。

0 投票
1 回答
2455 浏览

iphone - iPhone SDK 中的音频淡入淡出

我想知道是否有某种方法可以在 CocoaTouch 中使用 AVAudioPlayer 淡入和淡出音频,一旦音乐完成淡入淡出,就会使用暂停命令,然后在淡入淡出开始后使用播放命令。我听说可以为此目的使用 NSTimer,但我不确定实现此目的的最简单方法。

谢谢你的帮助!