我有一个带布尔值的单例,我试着在我的一个VC中创建一个方法,只要这个布尔值改变值就会被调用。
例如,它将像:-(void)onOff:(bool)flag {
if (flag){}
else {}
}
它是一个全局bool(未在特定的viewcontroller中声明)
如何创建全局bool的观察者/扩散方法?
答案 0 :(得分:0)
一种方法可以是 - 您可以使用通知来实现此
在视图控制器中添加需要进行更新的观察者
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(booleanValueChanged:)
name:@"BOOLEAN_NOTIFICATION"
object:nil];
- (void) booleanValueChanged:(NSNotification *) notification
NSDictionary *userInfo = notification.userInfo;
BOOL flag = [[userInfo objectForKey:@"booleanValue"] boolValue];
}
现在无论您在哪里更改该bool的值,请使用以下代码:
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:flag] forKey:@"booleanValue"];
[[NSNotificationCenter defaultCenter] postNotificationName: @"BOOLEAN_NOTIFICATION" object:nil userInfo:userInfo];