20
在Paul Hegarty課程的iOS 5教程之後,我們在一個展示GCD使用的應用程序中看到了這段代碼。顯然GCD需要釋放,因爲多線程在某些對象仍然需要時會有些不可預知。你需要在iOS 6.0的ARC下發布GCD隊列嗎?
dispatch_async(dowloadQueue, ^{
....
// do some stuff
....
});
dispatch_release(dowloadQueue);
我已經升級到iOS 6的XCode 4.5,我得到一個 「ARC禁止顯式釋放......」 消息
我沒有嘗試下的iOS5/XCode的驗證碼4.2
這是因爲ARC變得更聰明,我不再需要在GCD中發佈了嗎? 還是我誤解了?
當你創建隊列時,你需要__bridge_transfer到Objective-C嗎? – openfrog
@openfrog - 不,如果它被視爲一個Objective-C對象,它已經被ARC處理過了,所以不需要將其轉移。 –
@BradLarson有沒有辦法將它關閉?或者,我該如何編寫它才能在iOS 5和iOS 6下編譯? – fishinear