私はObjective-C、Xcode 4.5.1を使用しており、iPhone用のアプリで作業しています。
別のメソッドBを呼び出して、x秒ごとに一連の計算を実行するメソッドAがあります。メソッド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.
}
誰かが私にいくつかの答えを提供してくれたり、正しい方向に私を向けてくれたらありがたいです!(: