布尔值作为方法的开/关开关

时间:2015-11-04 19:44:28

标签: objective-c

我有一个带布尔值的单例,我试着在我的一个VC中创建一个方法,只要这个布尔值改变值就会被调用。

例如,它将像:

-(void)onOff:(bool)flag {

    if (flag){}
    else {}
}

它是一个全局bool(未在特定的viewcontroller中声明)

如何创建全局bool的观察者/扩散方法?

1 个答案:

答案 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];
相关问题