2
我正在創建一個GCD調度隊列來處理異步創建和保存新的託管對象。作爲ivar的GCD dispatch_queue_t - 內存管理?
首先,是否有必要將它創建爲實例變量?假設我有一個(假設)方法-newObjectWithProperties:
,並且我使用標籤"com.myapp.coredata"
在本地創建了隊列。下次我撥打-newObjectWithProperties:
並重新創建具有相同標籤的隊列,但該隊列上的前一個後臺任務仍不完整,該隊列的本地「重新創建」是否對應於相同的實際隊列?或者它會拋出異常?如果是後者,那麼我認爲該隊列需要一個類範圍的實例變量。
假設需要ivar,應如何處理內存管理?我想我會在-init
中使用dispatch_queue_create()
,然後在-dealloc
中簡單地撥打dispatch_release()
?
有沒有一種方法來檢查隊列的存在,還是隻檢查變量是否爲'nil'? – Stuart
不,我使用空值檢查。我不知道Nil是否適用,因爲它是不透明的類型。無法回想起Nil是否會工作,現在遠離計算機。 – RyanR