我有一個包含單個項目的設置包。該項目是一個設置爲NO的開關。使用NSUserDefaults不起作用的應用程序設置
我正在使用它來允許用戶註銷我想要創建的應用程序。但是,當用戶打開應用程序時,轉到設置並選擇切換到註銷時,他們回到應用程序沒有任何反應。如果他們回到設置再次切換,然後回去,然後如果報名進入corrently ...
這幾乎就像設置不是第一次讀,但我不知道如何解決這個問題...
這是我的代碼是什麼樣子
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
NSNumber *branchString = [settings objectForKey:@"signout"];
NSLog(@"%@", branchString);
if ((branchString != nil) || (branchString != 0)) {
// turn signout back on.
[settings setObject:NO forKey:@"signout"];
[settings synchronize];
}
}
任何幫助,將不勝感激。
您也可以使用短格式@(NO),或者僅使用@NO。 – iamamused
它很難解釋,但我會嘗試。目前,當我第一次訪問NSUSerDefault時,這些值不是可用的。所以當我第一次註銷它沒有看到。我退出應用程序並再次回到它,然後我的代碼工作。是的,我的代碼與您的示例有關,但是現在交換機正在被正確重置,從不登出,因爲當我第一次使用它時,它會切換回NO。我第二次登錄沒有任何反應。我不知道爲什麼會發生這種情況。 – HurkNburkS
@HurkNburkS - 不太關注你,但要記住,在閱讀和設置開關值(或者你正在做的任何事情)時你必須打開對象。請參閱我的編輯。 – danh