J'essaie d'accélérer les performances de ma demande en effectuant des calculs dans les threads d'arrière-plan, mais j'ai des difficultés à le faire. A l'origine j'avais utiliséEffectuer la méthode avec la valeur de retour int dans le thread d'arrière-plan
[self performSelectorInBackground:@selector(calculateValue:) withObject:[words objectAtIndex:row]];
ce qui était bien quand mon sélecteur était une méthode vide. Cependant, j'essaie de faire quelque chose de similaire, mais évidemment le code ci-dessous n'est pas valide.
int value = [self performSelectorInBackground:@selector(calculateValue:) withObject:[words objectAtIndex:row]];
Toute aide est grandement appréciée.
Mise à jour
Voici la route que je vais actuellement. Je ne sais pas comment appeler au thread principal pour envoyer la valeur actualisée de computeWordValue à mon cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
int value = [self performSelectorInBackground:@selector(calculateWordValue:) withObject:[wordsSection objectAtIndex:row]];
NSString *pointValue = [[NSString alloc] initWithFormat:@"Point:%d",value];
cell.pointLabel.text = pointValue;
}
-(void)calculateWordValue:(NSString *)word {
[self performSelectorOnMainThread:@selector(computeWordValue:) withObject:word waitUntilDone:YES];
}
-(int)computeWordValue:(NSString *)word {
return totalValue; //This will be a randomly generated number
}
Comment la 'calculateWordValue' est rapide/lent et pourquoi essayez-vous de l'exécuter en arrière-plan à ce moment-là? –
Il effectue beaucoup de calculs, je l'ai simplifié pour poster – aahrens