【问题标题】:UITableViewCell with KVO带有 KVO 的 UITableViewCell
【发布时间】:2012-07-26 03:11:19
【问题描述】:

我有一个自定义表格视图单元格,它还使用以下方法观察另一个对象的键:

[_anotherObject addObserver:myCell
                 forKeyPath:@"killed"
                    options:NSKeyValueObservingOptionNew
                    context:0];

_anotherObject 是我的自定义表格视图单元类中的一个 ivar。

我知道我应该在某个时候将myCell 作为观察者移除,但我不知道什么时候应该这样做。

据我所知,可能的地方是:-dealloc & -prepareForReuse

【问题讨论】:

    标签: uitableview key-value-observing


    【解决方案1】:

    给你的 UITableViewCell 子类添加一个 dealloc 方法:

    -(void)dealloc {
        for (AnotherObject *object in self.subviews) {
            if ([object isKindOfClass:[AnotherObject class]]) {
                [object removeObserver:self forKeyPath:@"killed"];
            }
        }
    }
    

    类似的东西应该适合你。这样你就不会再收到那些讨厌的“An instance 0x21bb1010 of class AnotherObject 已被释放,而键值观察者仍向其注册”的消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多