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