2012-03-27 50 views
1

如何設置我的代碼,以便在整數變量上設置偵聽器,以便在值更改時(該值綁定到對象),通知被調用? 謝謝!在變量變化上創建通知

回答

5

您無法檢測到純C變量的更改。

您可能想要觀察對象內部狀態的變化。如果是這樣,您應該將整數值包裝到一個屬性中,並使用訪問器方法來修改該值。

@interface Foo : NSObject 
@property int bar; // declares a property of type int 
@end 

@implementation Foo 
@synthesize bar; // creates accessor methods for the property 
@end 

使用Key Value Observing可以檢測屬性的更改。

+0

感謝您的回答。 「將整數值包裝到屬性中」是什麼意思?謝謝! – Kevin 2012-03-27 10:30:41

+0

我已經將整數包裝到一個屬性中,如上所述創建一個新類。 現在的問題在於KVO。我正在創建一個類的新實例,其中bar(上面使用的變量)是一個屬性,如下所示: tabViewIndex * tvi = [[tabViewIndex alloc] init]; \t \t [TVI的addObserver:自 forKeyPath:@ 「酒吧」 選項:NSKeyValueObservingOptionNew 上下文:NULL]; – Kevin 2012-03-27 10:59:06

+0

然後,我調用此方法: - (空)observeValueForKeyPath:(的NSString *)的keyPath ofObject:(ID)對象的變化:(NSDictionary的*)的變化範圍內:(void *的)情況下 { \t的NSLog(@」加工」); } 嘗試記錄何時發生變化。但是,這種方法沒有被調用。我究竟做錯了什麼?謝謝! – Kevin 2012-03-27 10:59:44