Note that `-allowsWeakReference` is an instance method: there might be classes for which some objects allow them, and some don't. The runtime uses this granularity to return `NO` for objects that are deallocating, and that's probably all there is to it, so I wouldn't change this, but I'd rename the variable to `overridesAllowsWeakReference` for clarity, in case something turns out not to be working down the line.