Solve strong reference cycle problem with __weak reference