I want a block that is available throughout a class, so it can be re-used many times by different methods in the instance.
I want that block to be able to reference self.
I want to not have the block create any nasty retain cycles by retaining self.
So far I am stumped. I managed to create block in the .m outside of any method definitions, and that got me partway – I could reuse the block everywhere, but I couldn’t access self. I tried putting the block into an ivar but I’m doing something wrong there and now I’m getting random EXC_BAD_ACCESS. Can someone explain it simply, line by line?
I figured it out.
In MyClass.h:
in the init method:
Interestingly, if you accidentally refer to self inside the block, you will have a retain cycle, and Analyze will not complain. I put an NSLog in dealloc to prove that it is actually being dealloced, and it is.
Oh and don’t forget to [defaultFailureBlock release]; in dealloc too…