Sie können KVO (Schlüsselwertbeobachtung) verwenden, um eine Änderung am Wert der Eigenschaft hidden
zu erkennen.
Fügen Sie Ihren Beobachter ( self
in diesem Beispiel) folgendermaßen hinzu:
Fügen Sie Ihrer Beobachterklasse jetzt die folgende Methode hinzu:
%Vor% Die Beobachtermethode wird aufgerufen, wenn die Eigenschaft hidden
ihren Wert ändert. Wenn ich mich nicht irre, wird die Methode synchron im Kontext des Threads aufgerufen, der die Änderung an der Eigenschaft vornimmt. Wenn Sie eine asynchrone Benachrichtigung benötigen, können Sie diese selbst hinzufügen, zum Beispiel mit einer der NSObject
-Methoden performSelector:withObject:afterDelay:
oder performSelector:onThread:withObject:waitUntilDone:
.
Übrigens: Sie brauchen die Checks in der Beobachtermethode natürlich nicht, wenn Sie nur ein einzelnes Objekt und / oder eine Eigenschaft beobachten. Ich habe die Schecks zu Illustrationszwecken aufgegeben. Ich empfehle auch, die Dokumentation von Apple auf KVO und KVC (Schlüsselwertcodierung), um zu verstehen, was hier vor sich geht.
Die Runtime wird Ihren Beobachter weiterhin glücklich benachrichtigen, selbst wenn der Beobachter aus der Zuordnung genommen wird - was zu einem Anwendungsabsturz führt! Vergessen Sie also nicht, den Beobachter vor der Aufhebung der Zuweisung zu entfernen. Dies sollte spätestens im dealloc
des Beobachters geschehen: