I generally dislike typedefs for blocks that are only used once in an interface. I think it makes it harder to scan through the methods and understand how they work, since you have to go elsewhere for the block type.

Conversely, reducing the boilerplate in an implementation is valuable.