我正在尝试子类UIView,我想在其中添加更多子视图。由于我在代码中更改了我的视图的框架属性,因此我希望在调整此视图大小时调整子视图的大小,因此我在initWithCoder:
方法中添加了以下代码:
[self addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];
在观察方法中,我将手动重置视图的帧。一切正常,但当我推动其他视图控制器并向后移动时,我收到了这条消息:
Observation info was leaked, and may even become mistakenly attached to some other object.
那么,我该如何解决这个问题呢?我肯定知道观察者没有被移除,但这里没有任何viewDidDisappear
的东西。我该怎么办?
谢谢!
答案 0 :(得分:2)
您应该删除所有添加的观察者的观察者,所以请执行以下代码,
- (void)dealloc {
[self removeObserver:self forKeyPath:@"frame" context:NULL];
}