Otherwise the code crashes when the KKGridView instance gets
deallocated. It appears that [UIScrollView dealloc] releases the
delegate (which gets deallocated) and then there’s a call to [KKGridView
setDelegate:] with a nil argument. The call goes through the setter,
which references the already freed _delegate and EXC_BAD_ACCESS ensues.
The declaration of the delegate property was changed to make it obvious
that the property isn’t weak, and the delegate is (safely) set to nil
during deallocation to cover at least some use cases where the calling
code expects the delegate to be a weak property.