2015-11-04 42 views
-6

我有一個布爾和即時通訊的單身人士試圖在我的VC之一,使一個方法,只要此布爾值更改值將被調用。作爲方法的開/關開關布爾

例如它會像:

-(void)onOff:(bool)flag { 

    if (flag){} 
    else {} 
} 

其全球布爾(在特定視圖 - 控制未聲明)

如何創建一個觀察者/已檢舉全球布爾的方法是什麼?

+1

是什麼問題? – matt

+0

編輯 - 即時通訊嘗試找到一種方法,讓一些觀察員的方法,將調用該方法,每當全球布爾變化,我怎麼能做到這一點? – Dante

+0

你正在考慮這個倒退。如果您想知道值何時更改,請將其設置爲私人並提供必須調用的公共訪問器以更改該值。 – matt

回答

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]; 
+0

作品像魅力:) – Dante

+0

很高興它幫助! –