I’m working in a pure iOS5/ARC environment, so I can use __weak references as needed. I do reference ivars in a block in many situations, most notably, animation blocks that
The case to worry about is something like addObserverForName:object:queue:usingBlock:
. The docs say, "The block is copied by the notification center." Under ARC, that word "copy" is a red flag; now you need to take steps so that you (the caller) will not leak.
EDIT: Also, sometimes ARC itself will alert you. The completion block of -[UIPageViewController setViewControllers:direction:animated:completion:]
is a case in point. I would never have suspected that using self
here might cause a retain cycle, but ARC warned that it would, so I did the weak-strong dance just in case.