RSDeallocHandler 是一个简单的 NSObject
分类,用于添加和移除对象的 dealloc 块处理程序。
[someObject rs_addDeallocHandler:^{
NSLog(@"SomeObject deallocated.");
} owner:nil];
可以通过在添加时获得的 ID 来移除处理程序。
-(void)someMethod{
_handlerID = [someObject rs_addDeallocHandler:^{} owner:nil];
}
-(void)dealloc{
[someObject rs_removeDeallocHandler:_handlerID];
}
如果您指定了 owner
参数,那么当 owner 对象死亡时,处理程序将从接收器中自动移除并释放。因此,您不需要在 dealloc
中手动移除处理程序。
[someObject rs_addDeallocHandler:^{} owner:self];
Yan Rabovik (@rabovik 在推特)
MIT 许可。
-dealloc
swizzling。-dealloc
swizzling。