Rozpoczęto tworzenie szablonu Cocos2D 2.1 (bez silnika fizyki) w Xcode 4.5, przeznaczonego dla iOS 6 i iPada. W pliku CDAudioManager.m poniższy kod ...Cocos2D 2.1: "Delegat" przestarzały w iOS 6. Jak ustawić delegata dla tej AVAudioSession?
AVAudioSession* session = [AVAudioSession sharedInstance];
session.delegate = self; // Which is what is automatically generated by the template.
... generuje następujące ostrzeżenie ...
"delegate deprecated: first deprecated in iOS 6"
Więc idę do dokumentacji jabłoni dewelopera, i mówi pod "delegate", "Przestarzałe w iOS 6.0. Zamiast tego użyj powiadomień opisanych w sekcji Powiadomienia tej klasy."
Problem jest, wygląda mi na to wszystko staramy się zrobić - wybacz mój brak doświadczenia - jest ustawiony delegata dla AVAudioSession na przykład samego CDAudioManager. W jaki sposób powiadomienia realizują to? Czy po prostu mylę się co do celu powyższego kodu?
"Dlaczego" jest prawidłowe? – Jonny
Apple wycofał ustawienie delegata i protokołu AVAudioSessionDelegate w systemie iOS 6, a teraz trzeba wysłuchać powiadomień za pośrednictwem centrum NSNotification. – geekinit
Ta odpowiedź wygląda na niekompletną. –