我正在使用 Objective-C、Xcode 4.5.1 并为 iPhone 开发一个应用程序。
我有一个方法 A,我想在其中调用另一个方法 B 以每 x 秒进行一系列计算。在方法 AI 开始播放音频文件。方法 B 将在音频文件的持续时间内每 x 秒监视一次音频。
我找到NSTimer
了一个潜在的解决方案,但很难让它工作/理解它。
我只是想每隔 x 秒调用一次方法 B 并运行它的计算,但NSTimer
需要我提供一些我不确定我应该告诉它的东西。
[NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval)
target:(id) select:(SEL) userInfo:(id) repeats:(BOOL)];
我的理解是,我提供了我想要操作NSTimeInterval
的时间间隔。NSTimer
但是,我如何告诉它运行方法 B?
我查看了示例代码,目前的印象是我在“ select:
”处提供了该方法。但是,我在 ' target:
' 处写什么?为什么我需要一个目标?我尝试输入' self
',但 Xcode 告诉我:
使用未声明的标识符“self”
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self
select:@selector(targetMethod:myVolumeMonitor()) userInfo:nil repeats:YES];
所以,我认为 ' self
' 应该是一个指向对象的指针,但我想指向哪里呢?
下面是我的代码的简化:
MethodA()
{
//Start playing an audio file.
//NSTimer calling Method B, as long the audio file is playing, every x seconds.
}
MethodB()
{
//Do calculations.
}
如果有人能为我提供一些答案/为我指明正确的方向,我将不胜感激!(: