2011-07-28 7 views
0

私はhttps://github.com/st3fan/iphone-bitlyクラスを使用しています。例として、私はあなたの助けが必要な何かをしたいと思います。あなたが現在のスレッドをブロックする要求している何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 
    } 
} 


任意のヘルプや提案

答えて

1

。メインスレッドで実行した場合は、アプリをハングアップします。リンクしたフレームワークは、その理由から非同期インターフェイスしか提供しません。

これをバックグラウンドスレッドで既に実行している場合は、を再実装して[NSURLConnection sendSynchronousRequest:returningResponse:error:]を使用できます。しかし、決してあなたのメインスレッドでそれを実行しないでください。

+0

私は私のデモで結果を得たいと思っていますfuntionは、他のクラスやそのようなものを使って、私は私の関数のデモで短いリンクを得ることができますか?私は短いリンクを持つことができない限り、言い換えれば私はどこにでも移動することはできません。何か案が ? – Zaksh

+0

はい、URLShortener -executeを書き換えて、sendSynchronousRequest:returningResponse:error:を使用し、バックグラウンドスレッドで 'demo'を実行します。しかし、デリゲートのコールバックを待ってから、 'demoFinish'メソッドを続けることをお勧めします。これは、ネットワークフェッチを処理する通常の方法です。あなたはそれらを待っているメインスレッドをブロックしません。 –

+0

私を助けるためのおかげで:) – Zaksh