Я пытаюсь написать свое первое приложение для iPhone, и у меня возникли проблемы с делегатом.Установить делегат в другом классе
У меня есть класс, который использует AVAudioPlayer для воспроизведения некоторого звука, тогда у меня есть еще один класс, который мне нужно что-то сделать, когда этот звук будет завершен. Поэтому мне нужен этот класс для реализации метода audioPlayerDidFinishPlaying аудиоплеера.
Проблема в том, что я не могу решить, как сделать мой второй класс делегатом аудиоплеера, который является членом первого класса. Я создал метод в первом классе, который ссылается на класс и запускает метод setDelegate, но метод audioPlayerDidFinishPlaying никогда не вызывается. Однако, если я реализую метод audioPlayerDidFinishPlaying в первом классе, он получает название fine. Как я могу заставить audioPlayerDidFinishPlaying вызываться во втором классе?
Таким образом, код, я использую, чтобы добавить делегата, в первом классе у меня есть этот метод:
-(void) setAudioDelegate:(id)delegate{
[audioPlayer setDelegate:delegate];
}
тогда во втором классе я звоню его из этого
[class1 setAudioDelegate:self];
Вы говорите, что уже пытались назначить экземпляр своего второго класса в качестве делегата экземпляра AVAudioPlayer. Можете ли вы опубликовать код, который вы сделали для этого? – imaginaryboy
@imaginaryboy см. Обновление –
Ничего из этого опубликованного кода не так. Простите очевидные вопросы, но вы уверены, что «class1» и «audioPlayer» не ноль во время вызова setAudioDelegate: call? – imaginaryboy