以下代碼的行爲並不像我所期望的那樣。我認爲這可能與正確處理BOOL
和NSNumber
有關,或者可能我沒有正確存儲作爲用戶默認的號碼。在任何情況下,從UISwitch
獲得一個值並嘗試將其保存爲用戶默認值後,我沒有獲得我認爲我正在保存的值。Objective-C:從UISwitch中獲取所選值
NSNumber * on = [NSNumber numberWithBool:self.onSwitch.on];
BOOL onBool = [on boolValue];
NSLog(@"onBool before save%d",onBool);//Logs as 0
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setBool:onBool forKey:@"on"];//
[prefs synchronize];
BOOL onDefault = [[NSUserDefaults standardUserDefaults] objectForKey:@"on"];
NSLog(@"value of on after save%d",onDefault);//logs as 1
任何人都可以看到我犯了什麼錯誤嗎?
是或返回NSNumber的objectForKey,然後發送boolValue。 – danh