Is there any way that I can have a method sleep until a notification is posted? This is for an asynchronous NS开发者_开发技巧URLConnection
. I cannot move to a synchronous connection for multiple reasons.
Methods cannot "sleep"; that only applies to threads. Just split the code that needs to wait out into another method and have that method called when the notification arrives.
- (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];
}
use addobserver and set a target class with selector to be fired on notification. when you need to trigger, use postNotification with notificatonName. there you go..!!
精彩评论