/ / Czy obiekt klasy singleton może odpowiedzieć na wywołanie delegata? - ios, obiektyw-c, delegaci, singleton, metoda klas

Czy obiekt singleton metoda klasy może odpowiedzieć na wywołanie delegata? - ios, cel-c, delegaci, singleton, metoda klasowa

mam SettingsManager singleton, który obsługuje ustawienia użytkownika w mojej aplikacji (na przykład, gdy dźwięk jest odtwarzany w dowolnym kontrolerze widoku, SettingsManager jest sprawdzane, aby sprawdzić, czy dźwięk jest włączony i przy jakiej głośności).

Czy ten obiekt klasy (do którego mam dostęp) [SettingsManager sharedManager]) odpowiedzieć na wiadomość od delegata wysłaną gdzieś indziej? Na przykład, jeśli włączę dźwięk w moim SettingsViewController, czy obiekt metody klasy może go wybrać i zapisać i zapisać te zmiany na dysku?

Odpowiedzi:

2 dla odpowiedzi № 1

Twój singleton, po utworzeniu instancji, może oczywiście pełnić rolę delegata. W końcu jest to obiekt jak każdy inny obiekt. Jedyną różnicą jest to, że instancja jest tworzona tylko raz.

Jeśli jednak uzyskasz dostęp tylko przez klasęmetody i nie przechowuj żadnych danych we właściwościach, ivars, itp., wtedy może nie być w ogóle tworzony. Nie jestem pewien, czy w tym przypadku jest to prawdziwy singleton, ale widziałem, jak ludzie nazywają go singletonem, chociaż nigdy nie zostaje on faktycznie utworzony. W takim przypadku w ramach metod klasowych self zawsze odnosi się do klasy, a nie do instancji. A klasa nie może działać jako delegat.

W zależności od tego, jak wygląda Twój singleton, odpowiedź brzmi: tak lub nie.