Istnieje wiele pytań związanych z tym tematem, ale żaden z nich nie odpowiada na moje pytanie.Kluczowa wartość Zaobserwuj removeObserver, gdy obserwowany obiekt został zwolniony.
Chcę removeObserver
z obiektu, gdy obiekt zostanie zwolniony. Używam KVO, ponieważ trzeba obserwować wiele pozycji, a NSNotification
ma w tym przypadku ogromne obciążenie.
Oto scenariusz:
(wielokrotny) Obiekty są obserwowane przez różne inne przedmioty. Po zwolnieniu observer
mogę usunąć go jako obserwatora. Ale kiedy zwolni się observed
, muszę powiedzieć wszystkim observers
, by usunęli się jako obserwatorzy. Jak to zrobić?
Nie będzie tyle powiadomień, a cały cel użycia kvo zostanie pokonany. Ponadto kończyłoby się to tak: 1. Obserwować jakąś właściwość obiektu. 2. Ze wszystkich obserwowanych obiektów zwolnij powiadomienie po zwolnieniu. 3. Wysłuchaj powiadomienia o anulowaniu i usuń obserwatora. To dużo pracy. Czy nie ma jakiegoś czystego rozwiązania? – Sailesh