当Variable更改值时调用方法

时间:2015-07-08 00:38:44

标签: ios objective-c

我在我的app delegate.m中定义了BOOL,然后在视图controller.h中我有

extern BOOL usingInternet;

现在我想在这个值改变的时候调用一个方法,我正在尝试

[usingInternet addObserver:self forKeyPath:@"myData" options:0 context:@"data"];

但是我收到编译错误,Bad receiver type BOOL每次bool更改值时如何调用方法?

由于

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

你不能在BOOL上调用addObserver;你需要在一个对象上调用它。您可以将BOOL包装在NSNumber中。