Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 方法休眠直到通知_Objective C_Ios_Nsurlconnection_Delay - Fatal编程技术网

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会终止应用程序。