fixed delegate retain cycle.

The delegate should be weak as strong causes a retain cycle.