Ошибка при попытке скрыть кнопку от функции звукового обратного вызова при использовании AudioServicesAddSystemSoundCompletion - PullRequest
1 голос
/ 29 августа 2009

Я пытаюсь использовать функцию звукового обратного вызова, чтобы показать кнопку после завершения воспроизведения моего звукового файла.

//defining the callback
AudioServicesAddSystemSoundCompletion (soundID, NULL, NULL, AudioPlaybackComplete, self.nextButton);

Вот функция обратного вызова:

static void AudioPlaybackComplete(SystemSoundID  ssID, void *clientData)

{

NSLog(@"Show those darn buttons");
AudioServicesRemoveSystemSoundCompletion (ssID);

//show the buttons so you can switch to the next animal
[nextButton setHidden:YES];

}

У меня nextButton, определенный как выход в заголовочном файле и на который ссылаются правильно. Я получаю следующую ошибку, когда [nextButton setHidden:YES]; пытается выполнить: "error: 'nextButton' undeclared (first use in this function)".

Я полагаю, поскольку это статическая функция, у нее возникают проблемы со ссылкой на переменную экземпляра из этого файла. Любые мысли о том, как сделать так, чтобы этот метод не был статичным, или он правильно ссылался на кнопку?

Спасибо

1 Ответ

1 голос
/ 29 августа 2009

Ах, я понял это. Хитрость заключалась в том, чтобы передать кнопку функции обратного вызова.

    //defining the callback    
    AudioServicesAddSystemSoundCompletion (soundID, NULL, NULL, AudioPlaybackComplete, self.nextButton);

А затем сама функция обратного вызова

static void AudioPlaybackComplete(SystemSoundID  ssID, void *button)
    {
        NSLog(@"Show those darn buttons");
        AudioServicesRemoveSystemSoundCompletion (ssID);

        //show the buttons so you can switch to the next animal
        [button setHidden:NO];
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...