Domanda

Ho effettuato una chiamata a un metodo di classe dall'AppDelegate come SO:

    RankingAndSMProcess *process = [RankingAndSMProcess alloc];

    [process performSelectorInBackground:@selector(DoRankingAndSocialMediaProcessing) withObject:nil];

    [process release];
.

Questo metodo chiama altri metodi:

     @try {
         [self GoForRankingProcess];
         [self updateItemsForPeerindex];
         [self updateItemsForKloat];
         [self updateItemsForKred];
     }
     @catch (NSException *exception) {
         NSLog(@"An Error has been occured:%@", exception);
     }
     @finally { 
         [items release];
         [profile release];
     }
.

Tutti i metodi chiamati dall'interno del metodo DanrankingAndsocialMediaMessAnCessing in RankingandSmProcess devono essere chiamati allo stesso modo del DorrankingAndsocialMediaMessing sul filo del fondo?O c'è un altro problema potenziale qui?

Attualmente non penso che nessuno dei metodi di elaborazione venga spaventato poiché non vengono raccolti nuovi dati.

Prima di aggiungere modifica della chiamata da eseguire in background tutti i metodi e l'intero processo funzionava come previsto.

È stato utile?

Soluzione

Creare una nsoperazione e aggiungi questa operazione a NsopationalQueue. Ciò creerà un nuovo thread parallelo al thread principale e eseguirà anche il tuo metodo.

Ecco alcuni link utili:

Nsoperazione su iPhone

http://www.icodeblog.com/tag/nsopation/

.

http://www.cimgf.COM / 2008 / 02/16 / Cocoa-tutorial-NSOPERATION-E-NSOPERATIONALQUE /

Spero che questo ti aiuterà.

Divertiti la codifica :)

Altri suggerimenti

Cosa stanno facendo tutti quelli altri metodi?Se è una richiesta di rete, ad esempio un ciclo di run potrebbe essere necessario affinché il thread di sfondo sia in grado di effettuare effettivamente in grado di eseguire l'attività.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top