Bu, başkalarına bir süre onları kaydetmek için bir uyarı kadar bir soru değildir.Yinelenen NSNotification gözlemleri hakkında iOS/iPhone kullanıcılarının uyarısı
NSNotificationCenter iOS'ta 3/iPhone OS 3 (Ben de iOS 4 Mac OS X ve varsayarak) aşağıdaki davranışı vardır:
Eğer tam belirli bildirim için kendinize defalarca, NSNotificationCenter olacak DEĞİL kayıt varsa, fazlalığı tanımakta ve bunun yerine bir gözlem kaydettiğinizde size birçok bildirim gönderecektir.
Bu neredeyse görmek istediğiniz davranış değildir ve neredeyse her zaman rastlantısaldır.
Örnek:
- (void) viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(newDataArrived:)
name:NewDataArrivedNotification
object:[NetworkListener sharedNetworkListener]];
}
ama daha önce zaten viewWillAppear
aynı şeyi koyardım: Ben yeni veri geldiğinde benim bakış denetleyici bir tekil ağ nesneden bildirimlerini almak istediğiniz
- (void) viewWillAppear
{
[super viewWillAppear];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(newDataArrived:)
name:NewDataArrivedNotification
object:[NetworkListener sharedNetworkListener]];
}
Not , gönderici ve bildirim adı.
Bu durumda, bu addObserver çağrılarından birini kaldırmazsam, görüntü denetleyicime iki kez bildirim gönderirim.
Çok iş parçacıklı bir ortamda, bu bir acı dünyasıdır. Güven Bana.
Böyle bir şeye karışan başkalarının olması durumunda bunu dışarıda bırakmak.
1 İyi bir uyarıya sahip olmak için iyi bir uyarıya sahip olmalısınız - bunun büyük bir kısmını bir cevap olarak vermelisiniz ve kabul etmelisiniz :) (Alex Trebek'in 'cevabınızı ifade etmeli' ile ilgili bir şeyler mırıldandığını söyleyin…) –
Yeterince uzun sürdü, ama bitti. –