2013-01-14 66 views
2

有沒有一種方法可以確定/何時操作即將在NSOperationQueue上啓動/執行? 我正在使用NSURLConnection'ssetDelegateQueue:,我需要知道它何時觸發。操作啓動之前的NSOperationQueue回調?

+0

你能在你的NSURLConnection上設置一個委託嗎? –

+0

是的,但是我沒有看到NSURLConnection上的委託方法在連接之前被調用。我發現的最早時間是收到答覆的時候。 – 0xSina

回答

0

在您的NSOperation子類中爲willStartBlock添加一個副本屬性。在main的開始處 - 在任何其他操作之前 - 如果已設置,則調用此塊。

通過這種方式,您可以設置在創建操作時以及在將其放入操作隊列之前操作同時開始時執行的操作。

您的具體問題中的問題是您不會創建在您的隊列上創建的操作。您可以嘗試子類NSOperationQueue並重寫三個公共addOperation *方法。如果幸運的話,其中之一就是NSURLConnection用來將回調操作追加到隊列中的一個。

+0

我沒有NSOperation子類。 – 0xSina

+0

閱讀我的所有答案。子類NSOperationQueue。 – Cocoanetics

0

我可以知道你到底想要做什麼嗎?

我不知道你想達到的,因爲它不是從你的問題不清楚是什麼,但你可以做這樣的事情:

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

NSURLConnection的被調用一次啓動方法被調用。 您也可以繼承NSOperation並覆蓋啓動方法。

相關問題