UIView+Category access dealloc or do something on UIView dealloc call [closed]-Collection of common programming errors

swizzle dealloc. it is evil but we do it too 😀

in +load of your category swizzle dealloc and you’re in

#import 
#import 

@interface T : NSObject
@end

@interface T (myCat)
@end

@implementation T
- (void)dealloc {
    NSLog(@"2");
}
@end

@implementation T (myCat)
+ (void)load {
    SEL originalSelector = @selector(NSSelectorFromString(dealloc));
    SEL overrideSelector = @selector(xchg_dealloc);
    Method originalMethod = class_getInstanceMethod(self, originalSelector);
    Method overrideMethod = class_getInstanceMethod(self, overrideSelector);
    if (class_addMethod(self, originalSelector, method_getImplementation(overrideMethod), method_getTypeEncoding(overrideMethod))) {
        class_replaceMethod(self, overrideSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));
    } else {
        method_exchangeImplementations(originalMethod, overrideMethod);
    }
}
- (void)xchg_dealloc {
    NSLog(@"1");
    [self xchg_dealloc]; //calls original
}
@end