#import extern BOOL deallocRetainReleaseDeallocated; @interface DeallocRetainRelease : NSObject @end extern DeallocRetainRelease* globalDeallocRetainRelease; @protocol WeakReference @required @property (weak) id referent; @end @interface ObjCWeakReference : NSObject @property (weak) id referent; @end extern id weakDeallocLoadWeak; extern BOOL deallocLoadWeakDeallocated; @interface DeallocLoadWeak : NSObject -(void)checkWeak; @end extern BOOL deallocRetainAndAccessDeallocated; @interface DeallocRetainAndAccess : NSObject @property void (^onDealloc)(id); @end