将KVO与自定义UITableViewCell和CoreData一起使用

时间:2010-06-24 19:35:21

标签: iphone cocoa-touch core-data key-value-observing

我已经阅读了大量关于KVO的文档和教程,但我还没有发现任何我能够为我的应用程序抽象的内容。我有一个表视图,它使用自定义UITableViewCell类来提供打开/关闭选项的界面。该单元格有一个UISwitch,我想“绑定”到我的模型的布尔属性。我希望它在渲染单元格时应该为托管对象适当地设置控件的on属性,当我翻转该开关控件时,模型对象将更新为新值。

我开始研究它,但我认为合适的第一步是不起作用。

[switchControl  addObserver:self
    forKeyPath:@"on"
    options:0
    context:NULL];

- (void)observeValueForKeyPath:(NSString *)keyPath
                  ofObject:(id)object
                    change:(NSDictionary *)change
                   context:(void *)context
{
    NSLog(@"value changed");
}

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可以使用addTarget代替addObserver,如下所示:

[switchControl addTarget:self action:@selector(photoSwitchChanged:)forControlEvents:UIControlEventValueChanged];

其中目标函数定义如下:

- (void)photoSwitchChanged:(UISwitch*)switch {
}