当一个弱的属性被ARC设置为零时,kvo会发生吗?

时间:2013-09-15 04:06:16

标签: objective-c automatic-ref-counting key-value-observing

我想知道当一个被设置为弱的属性被强制引用时,是否通过弧清除了,是否有任何KVO注册了指向该弱属性的关键路径?这将是一个非常方便的功能,但我不知道目前是否发生这种情况。任何人都知道它是否存在,如果它没有默认可以使它工作吗?

2 个答案:

答案 0 :(得分:10)

你不能用ARC做到这一点,但你可以通过使用objc_setAssociatedObject()将对象与你的iVar相关联来模拟它,当弱变量消失时它将被释放。

@interface WeakObjectDeathNotifier : NSObject
@end
@implementation WeakObjectDeathNotifier
- (void)dealloc
{
    // the code that shall fire when the property will be set to nil
}
@end

您可以使用NSNotificationCenter或仅使用自定义块来构建非常精细的通知程序,具体取决于您对特定ivar案例或其中大量案例的依赖程度。

答案 1 :(得分:0)

运行时修饰符未与KVO

集成

所以没有