2012-03-05 9 views
6

W AppDelegate na didFinishLaunchingWithOptions:Jeśli dodasz obserwatora do powiadomienia w AppDelegate, czy muszę go usunąć?

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(contextChanged:) 
             name:NSManagedObjectContextDidSaveNotification 
             object:nil]; 

Jest więc mogę scalić zmiany do danych z innych wątków.

Pytanie: Czy muszę sobie radzić z usuwaniem tego słuchacza w applicationWillResignActive lub applicationWillTerminate? Wygląda na to, że nie ma sensu. Chyba pytam, czy to normalne, że słuchacze tacy jak oni są w głównej pętli, która nigdy nie zostanie usunięta.

Odpowiedz

7

Nigdy nie można go usunąć, ale jeśli aplikacja otrzyma powiadomienie (nie nastąpi to w tym przypadku), gdy jest w tle, powiadomienie zostanie umieszczone w kolejce i dostarczone do aplikacji, gdy pojawi się ponownie (jeśli aplikacja nie została zabita z c).

Jeśli nie chcesz, aby powiadomienia, które pojawiają się, gdy aplikacja jest w tle, które mają zostać dostarczone, gdy pojawi się, możesz usunąć słuchacza z metod, które wskazałeś.

W tym przypadku tak naprawdę to nie ma znaczenia.

Powiązane problemy