Możesz utworzyć CFRunLoopObserver
, który wywoła wejście i wyjście z pętli. Używasz CFRunLoopAddObserver
, aby dodać swojego obserwatora do pętli uruchamiania, i CFRunLoopGetMain
, aby uzyskać pętlę uruchamiania, do której chcesz dodać.
Tutaj jest raczej bezcelowe przykład stosując te:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
CFRunLoopObserverRef observer = CFRunLoopObserverCreateWithHandler(NULL, (kCFRunLoopEntry | kCFRunLoopExit), YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity)
{
static unsigned long count = 0;
NSLog(@"activity %lu: %@", ++count, (activity & kCFRunLoopEntry ? @"Enter" : @"Exit"));
});
CFRunLoopAddObserver(CFRunLoopGetMain(), observer, kCFRunLoopCommonModes);
}
To po prostu instaluje obserwatora, który rejestruje każde wejście & zjazd do pętli biegu. Możesz uruchomić go jako kompletną aplikację w Xcode i sprawdzić, ile razy przebiega pętla uruchamiania.
Należy pamiętać, że CFRunLoopObserverCreateWithHandler
zwraca referencję, którą posiadasz, jeśli usuniesz obserwatora, odpowiadasz za dealokację.
Dzięki, dokładnie tego właśnie szukałem. – vilanovi