2011-09-27 11 views
0

通知が送信されるまでメソッドがスリープ状態になることはありますか?これは非同期NSURLConnectionのためのものです。私は複数の理由で同期接続に移行することはできません。メソッドの通知が通知されるまで

+0

これは[NSURLConnectionを待ち](http://stackoverflow.com/questions/7572713/wait-for-an-nsurlconnection)で、問題のダブルポストのような非常に多くのようですか?お願い、それはやめて。 –

+1

メソッドがスリープしている場合、メソッドは魚と共にスリープします。 UIをロックすると、iOSによってアプリが強制終了されます。 –

答えて

1

メソッドはスリープできません。スレッドにのみ適用されます。他のメソッドに待機する必要があるコードを分割し、通知が到着したときにそのメソッドを呼び出すようにしてください。

- (void) doStuffBeforeConnection { 

    [self doPreConnectionStuff]; 

    NSURL * url = [NSURL URLWithString:@"/U/R/L"]; 

    NSURLRequest * request = [NSURLRequest requestWithURL:url 
              cachePolicy:NSURLRequestReturnCacheDataElseLoad 
             timeoutInterval:0]; 
    NSURLConnection * conn = [NSURLConnection connectionWithRequest:request 
                 delegate:self]; 

    return; 
    // We are now "waiting"... 
} 

- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 

    [self nowDoStuffThatNeededToWait:response]; 
} 
-1

addobserverを使用して、通知先でセレクタを使用するターゲットクラスを設定します。 トリガーする必要がある場合は、notificatonNameでpostNotificationを使用してください。 そこに行く!

+0

オブザーバーを追加できます。[NSNotificationCenter defaultCenter]を使用して通知することができます – samfisher

+0

別のメソッドセレクターを追加せずに行う方法はありますか? – Baub

+0

"通知がポストされるまで"と述べたので、通知に応答するセレクタが必要です。セレクタが通知に添付されていない場合、通知を送信する目的はありません。 – samfisher

関連する問題