Do I need to create auto-ads in ARC in GCD?

I have a loop cycle method for CAEAGLLayer that uses a GCD to serialize access to shared ivars.

Currently, my drawing code is constructed as follows:

- (void)draw {
    dispatch_sync(serialDrawingQueue, ^{
        @autoreleasepool {
            [self drawingStart];

            [spriteA draw];
            [spriteB draw];

            [self drawingEnd];
        }
    });
}

The method drawis called by CADisplayLink. Is it required @autoreleasepoolwhen I use GCD blocks?

+5
source share
2 answers

From Apple Docs :

Objective-C, @autorelease, . GCD , , . , .

+21

, iOS10 @autoreleasepool. DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL DISPATCH_QUEUE_CONCURRENT_WITH_AUTORELEASE_POOL, queue.h

-1

All Articles