当一个对象被释放时,需要运行一些代码。例如,我设置了一个观察者,它在对象 B 的名称更改时更新标签 A 的文本。当标签 A 的保留计数达到 0 时,我想从 B 中删除观察者。
可能的解决方案: 1 子类化并在 dealloc 中调用干净的代码。
2 创建一个能够在dealloc中运行任意代码的包装类,并将这个对象关联到标签A。当A得到dealloc时,关联的对象也得到dealloc(假设只有A持有它的强引用),然后调用代码。
我不喜欢第一个,因为它的侵入性太强了,几乎没有用,需要子类化一些简单的东西。所以我用的是2号。
你有什么意见吗?你怎么做呢?