操作开始前的NSOperationQueue回调?

时间:2013-01-14 02:59:06

标签: objective-c nsurlconnection nsoperation

有没有办法可以确定某个操作是否/何时开始/执行NSOperationQueue? 我正在使用NSURLConnection's setDelegateQueue:,我需要知道它什么时候开火。

2 个答案:

答案 0 :(得分:0)

在您的NSOperation子类中,为willStartBlock添加一个copy属性。在main的开头 - 在任何其他操作之前 - 如果已设置,则调用此块。

这样,您可以设置在创建操作的同时开始操作时以及在将操作放入操作队列之前执行的操作。

您的具体问题中的问题是您没有创建在队列中创建的操作。您可以尝试子类化NSOperationQueue并覆盖三个公共addOperation *方法。如果你很幸运,那么其中一个是NSURLConnection用来将回调操作附加到你的队列的那个。

答案 1 :(得分:0)

我可以知道你到底想做什么。

我不确定你想要达到什么目的,因为你的问题不清楚,但你可以这样做:

currentConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
if (self.operationQueue) {
    [currentConnection setDelegateQueue:self.operationQueue];
}        
[currentConnection start];

一旦调用start方法,就会调用NSURLConnection。 您也可以继承NSOperation并覆盖start方法。