I could be wrong, but I do not see a save cycle here.
Blocks are a stack if they are not copied to the heap.
I do not use ARC, so your mileage may vary, but at least without ARC I would not expect a save cycle when the block was allocated with stacks and it does not have a saved reference to self.
The self reference will be copied onto the block stack, and if it goes outside the scope, the block will continue to access the copy until the block completes.
I donβt think I know how ARC manages this, I believe that if you are going to use ARC, you should know how it works.
But as regards non-ARC code, I do not see a save loop in this code.
source share