是否有一种机制可以让对象知道归零弱引用变为 nil?
比如我有一个属性
@property (nonatomic, weak) MyClass *theObject;
当对象解除分配并且属性变为零时,我想得到通知。但是怎么办?归零弱引用系统是否在对象消失时使用setter将属性设置为nil?
最佳答案
运行时只是将弱变量 _theObect 设置为 nil,不会调用自定义 setter 。
您可以做什么(如果您真的需要通知):
- 定义一个本地“watcher”类并在该类中实现 dealloc,
- 创建一个观察者对象并将其设置为_theObject 的“关联对象”。
当 _theObject 被释放时,关联的对象被释放和释放(如果没有其他强引用指向它)。因此它的 dealloc 方法被调用。这是您的“通知”。
(我正在手机上写这个,如果需要的话可以稍后填写详细信息。)
关于ios - 在 ARC 下的 Objective-C 上,当归零弱引用变为 nil 时如何得到通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19344092/