我正在使用Objective-C,Xcode 4.5.1和iPhone上的應用程序。如何使用NSTimer在Objective-C中每x秒調用一次方法?
我有一個方法A,其中我想調用另一個方法B每x秒執行一系列計算。在方法A中,我開始播放音頻文件。方法B將在音頻文件的持續時間內每隔x秒監視一次音頻。
我發現NSTimer
是一個潛在的解決方案,但我很難讓它工作/理解它。
我只是想每x秒調用一次方法B並運行它的計算,但NSTimer
要求我提供幾個我不確定我應該告訴它的事情。
[NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval)
target:(id) select:(SEL) userInfo:(id) repeats:(BOOL)];
這是我的理解是在NSTimeInterval
我提供的,我想NSTimer
操作的時間間隔。但是,我如何告訴它運行方法B?
我看了一下示例代碼,目前我的印象是我在'select:
'處提供了這個方法。但是,我在'target:
'上寫什麼?爲什麼我需要一個目標?我試着輸入「self
」,但是Xcode中告訴我:
使用未聲明的標識符「自我」
[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.
}
我將不勝感激,如果有人能爲我提供一些答案/點我在正確的方向! (:
謝謝你的回答!你是一個很好的幫助!我設法弄明白這一切!(:@Hermann Klecker – RoelfMik
不客氣。如果事情有幫助,我不介意'接受'。 :) –
隨着我的鼠標點擊我已經授予你'接受':) – RoelfMik