我注意到它們在創建時不返回指針,而是實際的對象。因此,要獲得一個指針,我想聲明它是這樣的:如何在類之間共享串行調度隊列?
dispatch_queue_t* queue;
*queue = dispatch_queue_create("double_buffer_protection_queue", DISPATCH_QUEUE_SERIAL);
在我的C++程序員說,應該工作,但它給出了一個錯誤BAD_ACCESS,所以我猜我接近這一錯誤的方法。
如果我想要一個可以被我的程序中的任何對象訪問的串行隊列,我該怎麼做?我上面展示的代碼是爲了進入AppDelegate類。
我認爲它們不應該在'queue'之間有'*'指針。 – AechoLiu
您的代碼與「int * a; * a = 0;」相同,它應該是「dispatch_queue_t queue; dispatch_queue_t * queue_pointer = &queue; * queue_pointer = ...」。 –
如果你的'queue'對象是一個全局對象,那麼你需要解引用一個空指針。如果你的'queue'對象是一個自動變量,那麼你正在引用一個垃圾指針。無論哪種方式,這解釋了你看到的崩潰。 –