if you turn on `-Wimplicit-retain-self` the compiler complains about the references to `self->delegate_`.

i prefer to do the weak self dance with blocks because it easy make a mistake and inadvertently create a retain cycle.