Ho implementato NSNotificationCenter nella mia applicazione. Invio una notifica ogni volta che viene eseguita la decodifica delle immagini. la prima volta che la decodifica dell'immagine verrà eseguita 8 volte. Quindi la notifica supponiamo di inviare 8 volte. Ma sta chiamando 64 volte (8 * 8).NSNotificationCenter chiama più volte
Ecco il mio codice come ho implementato -> // inizializzazione
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(getHRImage:)
name:@"DecodeComplete" object:nil];}
// metodo di chiamata
-(void)getHRImage:(NSNotification *) notification
{
if ([[notification name] isEqualToString:@"DecodeComplete"])
NSLog (@"Successfully received the DecodeComplete notification! ");
}`
// Deallocation
- (void) dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"DecodeComplete" object:self];
//[super dealloc];
}
// Messaggio Notifica
[[NSNotificationCenter defaultCenter] postNotificationName:@"DecodeComplete" object:self];
Qualcuno può suggerirmi dove ho sbagliato.
Grazie in anticipo.
// metodo di chiamata è come questo (chiamando 8 volte)
-(void)decode
{
NSLog(@"---------- Decoding is Complete ---------");
[[NSNotificationCenter defaultCenter] postNotificationName:@"MdjDecodeComplete" object:self];
}
Non hai mostrato abbastanza contesto intorno alla tua chiamata a 'postNotificationName' per fornire una risposta, ma devi chiamarla 64 volte - quindi ho il sospetto che ci sia qualche problema con la struttura del tuo loop. Ti suggerisco di pubblicare più codice o di inserire un punto di interruzione su 'postNotificationWithName' e vedere dove viene chiamato – Paulw11
hai controllato che i tuoi metodi' dealloc' vengano chiamati o meno? –
sembra che tu stia aggiungendo osservazioni più volte e la tua precedente osservazione aggiunta non viene rimossa, quindi stai ricevendo il metodo getHRImage più volte. –