est-il un moyen d'ajouter quelque chose à être exécuté dans EDT/Event Dispatch Thread dans l'application Iphone comme la méthode invokeLater dans l'application Java Swing?Iphone ajoute une tâche à EDT? quelque chose comme SwingUtilities.invokeLater?
3
A
Répondre
4
Jetez un oeil à NSObject
référence classe - méthodes commençant par performSelector
0
Je me veux aussi une partie de code.
Cela est en train de faire, malheureusement, pas le comportement souhaité:
- (void) invokeLater_aux:(NSArray*)functionName_arg
{
NSLog(@"invokeLater_aux:");
if(functionName_arg != nil && (functionName_arg.count > 0)){
// split the params:
NSString* functionNameString = [functionName_arg objectAtIndex:0];
NSLog(@"functionNameString: %@",functionNameString);
SEL functionName = NSSelectorFromString(functionNameString);
id arg = nil;
if(functionName_arg.count > 1){
arg = [functionName_arg objectAtIndex:1];
}
// call the function on main thread
[self performSelectorOnMainThread:functionName withObject:arg waitUntilDone:YES ];
}
[functionName_arg release];
}
- (void) invokeLater: (SEL)functionName withObject:(id)arg
{
NSLog(@"invoke later: %@",NSStringFromSelector(functionName));
[self performSelectorInBackground:@selector(invokeLater_aux:)
withObject:[[NSArray alloc] initWithObjects:
NSStringFromSelector(functionName),//the function name as String
arg,// the function arguments
nil]
];
}
car il est de commencer un nouveau thread dans invokeLater et ne pas attendre pour terminer l'exécution du thread principal et il sera exécuté l'appel du invokeLater_aux en le fil principal (au changement de contexte?)
il est possible d'avoir n
discussions avec ce code si vous appelez n
fois le invokeLater
.
- comment attendre dans
invokeLater_aux
, jusqu'à ce que le thread principal est terminé?
Questions connexes
- 1. tâche: quelque chose =>: environnement
- 2. Différence entre SwingWorker et SwingUtilities.invokeLater
- 3. Comment ajouter tous les fichiers non suivis dans svn? Quelque chose comme git ajoute -i?
- 4. Quelque chose comme. = En PHP, mais ajoute des données "Avant" au lieu de "Après"?
- 5. C#: Y at-il une différence entre (type) Quelque chose contre quelque chose comme type
- 6. Quelque chose comme Crystal Reports pour PHP?
- 7. Quelque chose comme PHP's __call() dans Actionscript
- 8. Quelque chose comme RestoreBounds for WindowState
- 9. composant ImageGrid ou quelque chose comme ça
- 10. Quelque chose comme rsync avec l'iPhone-sdk
- 11. classes enum (ou quelque chose comme enum)
- 12. Quelque chose comme viewstate et session
- 13. Quelque chose comme canvas.drawWindow() dans WebKit?
- 14. NSOutlineViewDelegate - besoin de quelque chose comme didFinishEditing
- 15. Quelque chose comme "contient tout" dans HQL
- 16. quelque chose comme l'application multi desktops
- 17. Comment implémenter quelque chose comme www.igoogle.com?
- 18. Quelque chose comme SciPy dans Ruby?
- 19. Quelque chose comme FindBugs pour .NET/C#
- 20. Quelque chose comme $ AssertFunction = Abort []; Message []
- 21. Quelque chose comme Smarty dans ASP.NET?
- 22. Y at-il une API pour quelque chose comme ça?
- 23. Comment emballer un int [,] avec quelque chose comme une ReadOnlyCollection?
- 24. Java - Différence entre SwingWorker et SwingUtilities.invokeLater()
- 25. Ajouter quelque chose comme ShowDialog à un contrôle utilisateur personnalisé?
- 26. Est-il possible d'utiliser quelque chose comme un tableau IBOutlet?
- 27. Puis-je utiliser deux clauses where, comme "SELECT * FROM table WHERE quelque chose et quelque chose"?
- 28. Mootools ajouter une classe à 'a' href = "quelque chose"
- 29. Quelle est la différence entre déclarer comme nouveau et comme quelque chose = quelque chose de nouveau dans vb.net?
- 30. Comment faire quelque chose comme ça dans Scala?