[oqlMyOperationQueue cancelAllOperations];
PO([oqlMyOperationQueue operations]);
我仍然在那裏看到一堆操作。爲什麼取消所有操作不會刪除所有操作?
2013-05-06 16:05:38.559 [oqlMyOperationQueue operations]: (
"<NSBlockOperation: 0x20222730>",
"<NSBlockOperation: 0x2041f7a0>",
"<NSBlockOperation: 0x20450830>",
"<NSBlockOperation: 0x20417bf0>",
"<NSBlockOperation: 0x2006d510>",
"<NSBlockOperation: 0x2000d150>",
"<NSBlockOperation: 0x20379810>",
"<NSBlockOperation: 0x2021f8f0>",
"<NSBlockOperation: 0x2045dca0>",
"<NSBlockOperation: 0x2024c670>",
"<NSBlockOperation: 0x2041b8e0>",
"<NSBlockOperation: 0x203d54a0>",
"<NSBlockOperation: 0x20442c80>",
"<NSBlockOperation: 0x20452930>",
"<NSBlockOperation: 0x20363af0>"
)
但是我已經取消了所有操作。所以有什麼問題?
好吧我知道如果一個操作已經在執行,那麼這個操作將保留在隊列中。但爲什麼還剩這麼多?隊列是串行的。
如果操作在開始執行之前被取消,他們在排隊的塊中做什麼? – 2013-05-06 09:19:43
@SeptiadiAgus操作本身可以決定它是否要服從取消與否。想想取消更多的作爲它應該不完成(甚至開始)它的任務的暗示。 – JustSid 2013-05-06 09:31:56