55 // MARK: Methods used by the Objective-C runtime
56
57 - (id)forwardingTargetForSelector:(SEL)selector
58 {
59 initializeTargetIfNeeded(self);
60
61 return _target;
62 }
63
64 - (BOOL)allowsWeakReference
65 {
66 return !_objc_rootIsDeallocating(self);
67 }
68
69 - (BOOL)retainWeakReference
70 {
71 return _objc_rootTryRetain(self);
72 }
73
74 // MARK: NSObject protocol implementation
75