标签:
有时我们需要在一个对象生命周期结束的时候触发一个操作,希望当该对象dealloc的时候调用一个外部指定的block,但又不希望直接hook dealloc方法,这样侵入性太强了.下面贴一段非常简单的实现方式,通过一个category给外部暴露一个block注入的接口,内部将该block封装到一个寄生对象中(Parasite),该寄生对象在dealoc的时候触发block调用,所有的寄生对象通过runtime的AssociatedObject机制与宿主共存亡,从而达到监控宿主生命周期的目的.
注意事项
NSObject+Guard.h
1
|
#import <Foundation/Foundation.h>
|
NSObject+Guard.m
1
|
#import "NSObject+Guard.h"
|
标签:
原文地址:http://www.cnblogs.com/xiao-love-meng/p/5757560.html