Delegate should be a weak reference to prevent retain cycle

This was causing a memory leak in my code. Here's a fix if you want it.