2011-07-28 3 views
0

J'utilise https://github.com/st3fan/iphone-bitly classes et comme exemple je veux faire quelque chose pour lequel je veux votre aide.iphone-bitly question

- (void) demo 
{ 
    URLShortener* shortener = [[URLShortener new] autorelease]; 
    if (shortener != nil) { 
     shortener.delegate = self; 
     shortener.login = @"LOGIN-REPLACE-ME"; 
     shortener.key = @"KEY-REPLACE-ME"; 
     shortener.url = [NSURL URLWithString: @"http://stefan.arentz.ca"]; 
     [shortener execute]; 
///// I want to get result on here not in the delegate for further usage in my function 
    } 
} 


toute aide ou suggestion

Répondre

1

Qu'est-ce que vous demandez bloquerait le thread courant. Si vous l'avez exécuté sur le thread principal, vous suspendez votre application. Le framework que vous avez lié fournit uniquement une interface asynchrone pour cette raison.

Si vous exécutez déjà cela sur un thread d'arrière-plan, vous pouvez réimplémenter execute pour utiliser [NSURLConnection sendSynchronousRequest:returningResponse:error:]. Mais ne l'exécutez jamais sur votre fil principal.

+0

je veux obtenir le résultat dans mon demo funtion est-il une autre classe ou quelque chose comme ça en utilisant ce que je peux obtenir un lien court dans ma démo de fonction ?? ou en d'autres termes je ne peux pas aller n'importe où sauf si je ne peux pas avoir un lien court. une idée ? – Zaksh

+0

Oui, en réécrivant URLShortener -execute pour utiliser sendSynchronousRequest: returnResponse: error: et en exécutant 'demo' sur un thread d'arrière-plan. Je recommanderais, cependant, que vous attendiez juste le rappel de délégué et continuiez dans une méthode 'demoFinish'. C'est la manière normale de gérer les récupérations réseau. Vous ne bloquez pas le thread principal qui les attend. –

+0

merci de m'aider :) – Zaksh