(I assume that you don't use ARC.) From the Transitioning to ARC Release Notes:
In manual reference counting mode,
__block id x;
has the effect of not retainingx
.
So your assumption is wrong, the block does not retain s
. You have to retain it if
methodWithBlock
works asynchronously.