2014-04-28 42 views
0

我有一些代碼,我正在讀一個開關量從我的設置在某些情況下,但是將其捆綁讀取錯誤的值。閱讀設置捆綁第一次沒有返回正確的值

這是我的代碼看起來像,它在我的應用程序委託applicationDidBecomeActive

NSUserDefaults *settings = [NSUserDefaults standardUserDefaults]; 
NSNumber *branchString = [settings objectForKey:@"signout"]; 

BOOL userSignOut = [[settings objectForKey:@"signout"] boolValue]; 
NSLog(userSignOut ? @"Yes" : @"No"); 

當應用程序第一次加載我recive NO然後當我切換到設置,並把我的情況是什麼切換到YES,當我重新登錄我仍然得到NO但是如果我再設置和我的應用程序之間再次進行觸摸開關的設置,這就是當我得到即使它應該發生一個ST開關EP早...

任何幫助將不勝感激。

+1

你打電話[NSUserDefaults的standardUserDefaults]同步]設置之後呢? – Jack

+0

當你說我設置它之後,你的意思是在我的問題中顯示的第一行代碼之後? – HurkNburkS

+0

沒有,以後可以通過調用其設置爲YES [[NSUserDefaults的standardUserDefaults]的setObject:@(YES)forKey:@ 「signout」] – Jack

回答

0

正在設置的值,當你使用這個?

[[NSUserDefaults standardUserDefaults] setObject:(id) forKey:(NSString *)]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 
+0

這與問題無關。 – rmaddy

0

您可以使用NSUserDefaultsDidChangeNotification作爲觀察者。