给category添加weak属性

833 阅读1分钟

首先,给category属性是需要使用runtime中的关联来实现set和get方法,但runtime没有提供weak ,虽然runtime没有开放weak解决方案,但objc对象是可以实现weak的,所以让需要被修饰的对象去持有一个strong对象,然后当被修饰的对象释放的时候,持有的对象也会被释放,那么我们就可以捕捉到释放的事件,进而使用OBJC_ASSOCIATION_ASSIGN来实现弱引用