小编Roe*_*Mik的帖子

如何使用NSTimer在Objective-C中每隔x秒调用一个方法?

我正在使用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)];
Run Code Online (Sandbox Code Playgroud)

我的理解是,NSTimeInterval我提供了我想要NSTimer操作的间隔.但是,我如何告诉它运行方法B?

我查看了示例代码,目前我的印象是我在' select:' 提供了方法.但是,我在' target:' 写什么?我为什么需要目标?我尝试输入' self',但Xcode告诉我:

使用未声明的标识符'self'

[NSTimer scheduledTimerWithTimeInterval:0.1 target:self 
select:@selector(targetMethod:myVolumeMonitor()) userInfo:nil repeats:YES];
Run Code Online (Sandbox Code Playgroud)

所以,我self认为' '应该是指向对象的指针,但我想指向哪里?

以下是我的代码的简化:

MethodA()
{
//Start playing an audio file.

//NSTimer calling Method B, as long the audio file is playing, every x seconds.
}

MethodB()
{
//Do calculations.
}
Run Code Online (Sandbox Code Playgroud)

如果有人能给我一些答案/指出我正确的方向,我将不胜感激!(:

cocoa-touch objective-c nstimer

23
推荐指数
4
解决办法
5万
查看次数

标签 统计

cocoa-touch ×1

nstimer ×1

objective-c ×1