Ios 变量更改值时调用方法

Ios 变量更改值时调用方法,ios,objective-c,Ios,Objective C,我在app delegate.m中定义了BOOL,然后在view controller.h中定义了BOOL extern BOOL usingInternet; 现在我想在这个值改变时调用一个方法,我正在尝试 [usingInternet addObserver:self forKeyPath:@"myData" options:0 context:@"data"]; 但是我得到了一个编译错误,错误的接收器类型BOOL如何在每次BOOL改变值时调用一个方法 谢谢你不能在电话里叫addObse

我在app delegate.m中定义了BOOL,然后在view controller.h中定义了BOOL

extern BOOL usingInternet;
现在我想在这个值改变时调用一个方法,我正在尝试

[usingInternet addObserver:self forKeyPath:@"myData" options:0 context:@"data"];
但是我得到了一个编译错误,
错误的接收器类型BOOL
如何在每次BOOL改变值时调用一个方法


谢谢

你不能在电话里叫addObserver;你需要在一个对象上调用它。你可以用一个NSN号码来包装这本书

[self addObserver:self forKeyPath:@"usingInternet" options:0 context:nil];
并从中得到结果

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