Selektor am Anfang / Ende der Laufschleife ausführen

8

Alle Ereignisse und Methoden in iOS werden mit NSRunLoop verarbeitet: Benutzerereignisse, Methodenaufrufe, Rotationen, Timer, Verbindungen usw.

Meine Frage ist :

Wie kann ich einen Selektor in einem bestimmten Moment der Laufschleife als Anfang und Ende ausführen?

    
vilanovi 28.05.2013, 10:07
quelle

1 Antwort

21

Sie können ein CFRunLoopObserver erstellen, das einen Block beim Schleifeneintrag und beim Beenden aufruft. Sie verwenden CFRunLoopAddObserver , um Ihren Beobachter zur Laufschleife hinzuzufügen, und CFRunLoopGetMain , um die Laufschleife zum Hinzufügen zu erhalten.

Hier ist ein ziemlich sinnloses Beispiel, das diese verwendet:

%Vor%

Dies installiert einfach einen Beobachter, der jeden Eintrag protokolliert & amp; Beenden Sie die Laufschleife. Sie können es als eine vollständige Anwendung in Xcode ausführen und sehen, wie oft die Laufschleife herumläuft.

Beachten Sie, dass CFRunLoopObserverCreateWithHandler eine Referenz zurückgibt, deren Eigentümer Sie sind, wenn Sie den Beobachter entfernen, für den Sie die Zuordnung aufgehoben haben.

    
CRD 28.05.2013, 10:36
quelle