I\'m using a dispatch_queue which is accessed through a property of its owner, like this:
@property (nonatomic, assign) dispatch_queue_t queue;
One interesting thing about this is that if the blocks submitted to the queue reference the object that owns the queue (e.g. "self"), the object will not hit dealloc
until all pending blocks in the queue are completed anyway.
Here is a project that demonstrates this:
https://github.com/joshrl/GDCQueueDeallocTest