Je viens de rencontrer cette étrange situation.question conceptuelle: qu'est-ce performSelectorOnMainThread faire?
j'utilisais la technique de chargement d'images paresseuse des exemples de pomme.
quand j'utilisé la classe dans mon application, il m'a donné le sujet à apprendre, mais ne pas ce qui se passe là-bas en fait.
Alors, voici le scénario:
Je pense que tout le monde a vu le lazytableimagesloading de pomme.
Je rechargeait ma table sur la finition l'analyse syntaxique des données:
- (void)didFinishParsing:(NSMutableArray *)appList
{
self.upcomingArray = [NSMutableArray arrayWithArray:loadedApps];
// we are finished with the queue and our ParseOperation
[self.upcomingTableView reloadData];
self.queue = nil; // we are finished with the queue and our ParseOperation
}
mais en raison de la connexion n'a pas été le démarrage et les images ont été ne se charge pas. quand je copie complètement le lazyimageloading et je l'ai remplacé le code ci-dessus avec le code suivant, il fonctionne très bien
- (void)didFinishParsing:(NSMutableArray *)appList
{
[self performSelectorOnMainThread:@selector(handleLoadedApps:) withObject:appList waitUntilDone:NO];
self.queue = nil; // we are finished with the queue and our ParseOperation
}
Je veux savoir quel est le concept derrière tout cela.
S'il vous plaît laissez-moi savoir si vous ne pouvez pas comprendre la question ou les détails ne sont pas assez parce que je veux désespérément savoir pourquoi il est comme ça?
Ainsi, le NSURLConnection n'exécute Si j'exécute le rechargement de la table dans thread principal, non? – harshalb
@hib NSURLConnection n'a rien à voir avec le rechargement de la table. Si vous avez une méthode qui est effectuée sur un thread d'arrière-plan, mais qu'elle doit mettre à jour l'interface utilisateur à un moment donné, cette mise à jour de l'interface utilisateur doit être effectuée sur le thread principal. –