方法睡眠直到通知

时间:2011-09-27 17:35:50

标签: objective-c ios nsurlconnection delay

在发布通知之前,有什么方法可以让方法睡眠吗?这是针对异步NSURLConnection的。由于多种原因,我无法转移到同步连接。

2 个答案:

答案 0 :(得分: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 :(得分:-1)

使用addobserver并设置一个带有选择器的目标类,以便在通知时触发。 当你需要触发时,使用带有notificatonName的postNotification。 你去.. !!