0

私はURL接続とスレッドの両方で最初のステップを動かしているので、質問が些細な結果になる可能性がある場合は我慢してください。基本的に、別のスレッドでNSUrlConnectionを実行したいと思います(これにより、多くのドキュメントが「危険」になる可能性がある場合でも)。このソリューションを採用するかどうかを決定する前に、私は最初にそれを実装することに成功する必要があります。さて、質問は本当に簡単です:それを行うための実際のコードは何ですか。そんなこと知ってる

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

ダウンロードを実行し、動作するように試してみました。私はそれを読みました

- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument

+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument

新しいスレッドを作成するために使用されます

では、initWithRequestメソッドをスレッドに追加するにはどうすればよいですか?どちらのスレッドメソッドも、最大で1つのパラメーターを持つセレクターを受け入れるようです。実際に必要なコードを読んでいただければ幸いです。

ありがとうございました。

4

1 に答える 1

-1

NSURLConnection の作成やその他の関連事項を処理するメソッドを作成できます。
次に、そのメソッドを別のスレッドで呼び出します。

- ( void )connect
{
    NSAutoreleasePool * pool = [ [ NSAutoreleasePool alloc ] init ];
    NSURLConnection * theConnection = [ [ NSURLConnection alloc ] initWith ... ];
    /* Rest of the code... */
    [ pool release ];
}

自動解放されたオブジェクトを処理するには、NSAutoreleasePool が必要です。connect メソッドは別のスレッドで実行されるため、プールは配置されず、自分で作成する必要があります。

次に、connect メソッドのスレッドを作成します。

[ NSThread detachNewThreadSelector: @selector( connect ) toTarget: self withObject: nil ];
于 2010-04-21T12:33:59.480 に答える