dokumentacji Apple jest niejasne, i po prostu stwierdza, że zazwyczaj programista nie będzie musiał tworzyć nowe:
Każdy uruchomiony program, kakao ma centrum domyślnego powiadomienia. Zazwyczaj nie tworzysz własnego. Obiekt NSNotificationCenter może dostarczać powiadomienia tylko w ramach jednego programu.
Pełne źródło: NSNotificationCenter documentation.
Jednak każde centrum powiadomień może obsługiwać sieć powiadomień, rozróżnianych według nazwy i obiektu. Po dodaniu obserwatora zazwyczaj wywołać metodę w jakiś sposób tak:
[center addObserver: self selector: @selector(observe:) name: @"observe" object: someObject];
A kiedy piszesz zgłoszenie można określić przedmiot:
[center postNotificationName: @"observe" object: someObject];
ten sposób powiedzieć, że używają nazw N i obiekty M, możesz obsługiwać rozróżniane powiadomienia N * M. Myślę, że nie ma potrzeby korzystania z dwóch centrów powiadamiania. Teoretycznie, jeśli skończyłeś wszystkie nazwy, możesz utworzyć inny przy pomocy metody alloc + init, ale prawie nie widzę, jak to się może przydać.
Należy również pamiętać, że centrum powiadomień jest często używane, gdy istnieją dwa obiekty, które nie mają bezpośredniego wskaźnika do siebie (w przeciwnym razie, dlaczego po prostu wywoływanie metody na nim?), Ze względu na unikanie skomplikowanych powiązań (szczególnie podczas korzystania z dużo plików xib), więc posiadanie unikalnego obiektu centrum powiadomień jest bardzo przydatne.
Jeśli zamiast tego korzystasz z centrum powiadomień z parametrem alot + init, musisz upewnić się, że wszystkie obiekty komunikacyjne mają wskaźnik do tego centrum powiadomień, a to może zwiększyć złożoność. Cała moc centrum powiadomień byłaby zmarnowana.
Pytanie legitowe, zawsze używam * defaultCenter * bez zwracania na to uwagi. –