2013-05-13 37 views
0

所以,我使用的是NSOperationQueue的addOperationWithBlock^{}方法,我想把細粒度的isCancelled屬性檢查在操作代碼中的點。如何獲取在此區塊中運行的操作實例?把isCancelled屬性在NSOperationQueue

例如,這是我的代碼片段:

[operationQueueInstance addOperationWithBlock:^{ 
    if (!???.isCancelled){ 
     NSlog(@"Instruction 1"); 
    } 
    if (!???.isCancelled){ 
     NSlog(@"Instruction 2"); 
    } 

    NSlog(@"Instruction 3"); 
}]; 

我如何獲得該塊將運行在這樣我就可以評估isCancelled屬性爲指令的操作的實例?

TIA

回答

1

從Apple文檔:

你不應該試圖去新創建的 操作對象或神聖的類型信息的參考。

您可以實例化一個NSBlockOperation並將其分配給變量以保留顯式引用。

addOperationWithBlock似乎是任何時候不需要對操作對象的引用的快捷方式。

確保使用__block存儲限定符標記塊操作以避免保留週期。

+1

換句話說,你可能想創建一個NSOperation子類來完成這項工作。 – uchuugaka 2013-05-13 10:46:27