0

別のスレッドで実行されている音楽レンダリング関数からこのメソッドを呼び出そうとしています。メソッドは内部にありInstrumentGridViewControllerます。

- (IBAction)stopPlayback:(id)sender{
    [self stopToneUnit];
}

これが私がメソッドを呼び出す方法です:

dispatch_async(dispatch_get_main_queue(), ^{ [InstrumentGridViewController stopPlayback: nil]; } );

しかし、私はこの警告を受けています:

Class method `+stopPlayback` not found (return type defaults to `id`)

そして、私が実行しようとすると:

erminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[InstrumentGridViewController stopPlayback:]: unrecognized selector sent to class 0x13e50'

私はその方法がそこにあると確信しているので、なぜこれが起こっているのか本当にわかりません。

編集:H2CO3は、現在実行中のインスタンスでstopPlaybackメソッドを呼び出す必要があると述べました。どうすればそれができるのでしょうか?

4

1 に答える 1

0

メソッドがクラス メソッドとしてではなく、インスタンス メソッドとして実装されているためです。クラス自体ではなく、クラス InstrumentGridViewControllerのオブジェクトで呼び出す必要があります。

于 2012-08-19T21:08:28.227 に答える