Effectuer Sélecteur En arrière-plan et d'obtenir la chaîne de retour
Je suis en train d'effectuer un sélecteur qui retourne un NSString dans le thread d'arrière-plan, et le NSString retourné dépendra de l'objet d'entrée albumlink.
Je m'exécute en arrière-plan, comme il faut un certain temps pour raccourcir les URL.
J'apprécierais vraiment si vous pouviez me dire comment je pourrais obtenir la chaîne de retour.
Mon code pour effectuer cette sélection est:
[self performSelectorInBackground:@selector(shortenURL:) withObject:albumlink];
OriginalL'auteur max_ | 2011-02-03
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas obtenir une valeur renvoyée de la fonction à l'extérieur du fil, il fonctionne. Le point entier de faire quelque chose dans un thread d'arrière-plan est qu'il est sorti de l'écoulement normal pour le thread principal, donc il n'y a pas de place pour elle de revenir à.. l'approche La plus raisonnable est de créer un bloc qui est effectué en arrière-plan (par NSOperation ou PGCD directement) dont les mises à jour les mises à jour de la valeur sur le thread principal — si vous avez besoin de stocker de la valeur par la suite — ou qui n'a tout simplement tout ce que vous alliez faire avec la valeur si elle était uniquement destiné à être utilisé dans une branche de code.
Avez-vous lu ma réponse passé "Vous ne pouvez pas"? C'est en gros ce que j'ai dit de le faire. Ce que j'ai dit, vous ne pouvez pas avoir une méthode execute sur un autre fil, mais toujours retourner une valeur normalement.
OriginalL'auteur Chuck
Vous pouvez écrire une autre méthode dans votre classe (appelons
-handleResponse:(NSString *)response
), puis à partir de la backgrounded processus, vous pouvez appeler le:OriginalL'auteur Dan Ray