2010-06-24 27 views
0

我已經閱讀了大量關於KVO的文檔和教程,但是我沒有找到任何能夠爲我的應用程序抽象化的文檔和教程。我有一個表格視圖,它使用自定義的UITableViewCell類來提供打開/關閉選項的界面。單元格有一個UISwitch,我想「綁定」到我的模型的布爾屬性。我希望當單元格被渲染時,它應該爲託管對象正確設置控件的on屬性,當我翻轉該開關控件時,模型對象將更新爲新值。將KVO與定製的UITableViewCell和CoreData一起使用

我開始研究它,但我認爲合適的第一步不起作用。

[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"); 
} 

回答

1

試試這個:

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

這是一般來說,不僅僅是一個好的主意,以檢查該情境,以確保事件的發生是由您的觀察產生的。 – 2010-07-23 17:53:43

+0

這不適合我。我和提問的人有相同的設置。我有一個UITableViewCell,它有一個UISwitch,我希望在切換開關時收到通知。幫助任何人? – 2011-08-25 16:17:56

0

相反的addObserver的,你可以使用addTarget如下:

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

,其中目標函數的定義如下:

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