我有一個CAEAGLLayer的運行循環方法,它使用GCD來序列化訪問共享ivars。是否有必要在GCD的ARC下創建自動釋放池?
我的繪製代碼目前被構造是這樣的:
- (void)draw {
dispatch_sync(serialDrawingQueue, ^{
@autoreleasepool {
[self drawingStart];
[spriteA draw];
[spriteB draw];
[self drawingEnd];
}
});
}
的draw
方法由CADisplayLink調用。 當我使用GCD塊時,是否需要@autoreleasepool
?
定義
DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL
和DISPATCH_QUEUE_CONCURRENT_WITH_AUTORELEASE_POOL
宏表示你怎麼樣只是嘗試一下,看看你得到任何「沒有游泳池的地方...只是泄漏!」錯誤消息? –顯然,最好問問更有經驗的開發人員是否這是個好主意。 –