Appelez des méthodes à partir de méthodes intitulées du fil principal
-
11-12-2019 - |
Question
J'ai appelé une méthode de classe à partir de l'appdelegate comme SO:
RankingAndSMProcess *process = [RankingAndSMProcess alloc];
[process performSelectorInBackground:@selector(DoRankingAndSocialMediaProcessing) withObject:nil];
[process release];
Cette méthode appelle d'autres méthodes:
@try {
[self GoForRankingProcess];
[self updateItemsForPeerindex];
[self updateItemsForKloat];
[self updateItemsForKred];
}
@catch (NSException *exception) {
NSLog(@"An Error has been occured:%@", exception);
}
@finally {
[items release];
[profile release];
}
Toutes les méthodes appelées à partir de la méthode DorankingAndSociAcédicing -Processing de RankingandsMProcess doivent-elles être appelées de la même manière que le dorankingandsocialmediaprocessing sur le fil d'antécédents?Ou existe-t-il un autre problème potentiel ici?
Actuellement, je ne pense pas que les méthodes de traitement soient tirées car aucune nouvelle donnée n'est collecte.
Avant d'ajouter de la modification de l'appel à effectuer en arrière-plan Toutes les méthodes et le processus complet fonctionnent comme prévu.
La solution
Créez une nsopération et ajoutez cette opération à NsoperationQueue. Cela créera un nouveau fil parallèle au fil principal et il exécutera également votre méthode.
Voici quelques liaisons utiles:
http://www.icodeblog.com/tag/nsoperation/
http://www.cimgf.COM / 2008/02/16 / Cocoa-Tutorial-Nsoperation-and-NsoperationQueue /
J'espère que cela vous aidera.
Profitez de codage :)
Autres conseils
Que font toutes les autres méthodes?S'il s'agit d'une demande de réseau d'instance, une boucle d'exécution peut être nécessaire pour que le fil d'arrière-plan soit en mesure d'effectuer la tâche.