Objective c 方法休眠直到通知
是否有任何方法可以让我在发布通知之前进行方法睡眠?这适用于异步Objective c 方法休眠直到通知,objective-c,ios,nsurlconnection,delay,Objective C,Ios,Nsurlconnection,Delay,是否有任何方法可以让我在发布通知之前进行方法睡眠?这适用于异步NSURLConnection。由于多种原因,我无法移动到同步连接。使用addobserver并设置一个带有选择器的目标类,以便在收到通知时触发。 当需要触发时,使用带有NotificationName的postNotification。 给你 方法不能“睡眠”;这只适用于线程。只需将需要等待的代码拆分为另一个方法,并在通知到达时调用该方法 - (void) doStuffBeforeConnection { [self d
NSURLConnection
。由于多种原因,我无法移动到同步连接。使用addobserver并设置一个带有选择器的目标类,以便在收到通知时触发。
当需要触发时,使用带有NotificationName的postNotification。
给你 方法不能“睡眠”;这只适用于线程。只需将需要等待的代码拆分为另一个方法,并在通知到达时调用该方法
- (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];
}
可以使用[NSNotificationCenter defaultCenter]添加观察者并发布通知。是否有任何方法可以不添加其他方法选择器来完成此操作?正如您提到的“直到发布通知”,因此它需要一个选择器来响应通知。如果没有附加通知的选择器,则没有发布通知的目的。有其他方法吗?我只需要该方法暂停并等待,直到委托说它有响应。我知道很多编程语言,但总的来说,您可以使用暂停调用(如-sleep(毫秒))在语句中暂停方法的执行一种语法或另一种语法取决于语言,但不能在方法的中间设置条件停顿。您必须找到一种方法,通过使用自定义/现有协议,使代码符合使用委托的要求。这是能做的最好的了。这看起来很像是一个双重的问题?请不要这样做。如果一个方法沉睡,它会和鱼一起沉睡。它会锁定用户界面,iOS会终止应用程序。