Referencing self in Blocks

I invested the time learning the basics of blocks. I'm getting more and more comfortable with the syntax, patterns and creative ways of using blocks. Despite my growing confidence and appreciation for avoiding protocols and delegates by using blocks, there is one spot that is still murky. At one point in the past couple of months I thought I understood this clearly, but with time I came to recognize that I wasn't 100% confident about all the nuances of using self within a block.

This Stack Overflow answer is exactly what I, and every other iOS developer needs to read every day for a week until each case is perfectly clear. (That is, iOS4 ARC/iOS4 non-ARC/iOS5 ARC/iOS5 non-ARC.)

Via: stackoverflow