2

有没有一种方法可以找出操作是否/何时即将开始/执行NSOperationQueue?我正在使用NSURLConnection's setDelegateQueue:,我需要知道它何时触发。

4

2 回答 2

0

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

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

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

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

于 2013-01-15T19:41:11.513 回答
0

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

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

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

于 2013-01-14T06:41:54.360 回答