cache for IMP method pointer 3. If it’s not there, check class dispatch table and continue up until found 4. If nothing is found, fallback to message forwarding
with each other void objc_setAssociatedObject(id object, void *key, id value, objc_AssociationPolicy policy) id objc_getAssociatedObject(id object, void *key)