Oto jak słuchać takich zdarzeń:
// Register for notification when the app shuts down
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFunc) name:UIApplicationWillTerminateNotification object:nil];
// On iOS 4.0+ only, listen for background notification
if(&UIApplicationDidEnterBackgroundNotification != nil)
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFunc) name:UIApplicationDidEnterBackgroundNotification object:nil];
}
// On iOS 4.0+ only, listen for foreground notification
if(&UIApplicationWillEnterForegroundNotification != nil)
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFunc) name:UIApplicationWillEnterForegroundNotification object:nil];
}
Uwaga: W if(&SomeSymbol)
sprawdza upewnić się, że kod będzie działać na systemie iOS 4.0+ a także na iOS 3.x - jeśli budować przeciwko SDK iOS 4.x lub 5.x i ustawić docelową lokalizację wdrożenia na iOS 3.x Twoja aplikacja może nadal działać na urządzeniach 3.x, ale adres odpowiednich symboli będzie zerowy, a zatem nie będzie próbował zapytać dla powiadomień, które nie istnieją na urządzeniach 3.x (co spowodowałoby awarię aplikacji).
Aktualizacja: W tym przypadku if(&Symbol)
kontrole są obecnie zbędne (chyba naprawdę trzeba wspierać iOS 3 dla jakiegoś powodu). Warto jednak poznać tę technikę, aby sprawdzić, czy API istnieje przed jego użyciem. Wolę tę technikę niż testowanie wersji systemu operacyjnego, ponieważ sprawdzasz, czy konkretny interfejs API jest obecny, zamiast używać zewnętrznej wiedzy o tym, jakie API są obecne w wersjach systemu operacyjnego.
dzięki za szybką odpowiedź! –