如何在 NSUserDefaults 中存储 BOOL

How to store BOOL in NSUserDefaults

view 和 viewcontroller 是分开的。我已经试过了 NSUserDefaults 还是不行。

[[NSUserDefaults standardUserDefaults] setValue:BOOLCondition forKey:@"YES"];
[[NSUserDefaults standardUserDefaults] synchronize];

据说 arc 不允许 bool 到 id 的影响转换

如何传递布尔值

***** 查看到 viewcontroller 而不是 viewcontroller 到 viewcontroller

使用下面的代码将 BOOL 值存储在 NSUserDefaults

BOOL BOOLCondition = YES;BOOL BOOLCondition = NO;

[[NSUserDefaults standardUserDefaults] setBool:BOOLCondition forKey:@"YES"];
[[NSUserDefaults standardUserDefaults] synchronize];

我总是这样做来存储一个 BOOL 值,因为我更喜欢直接处理对象:

BOOL _myBool = TRUE; // or FALSE...
[[NSUserDefaults standardUserDefaults] setValue:@(_myBool) forKey:@"boolValue"];
[[NSUserDefaults standardUserDefaults] synchronize];

并恢复存储的值:

BOOL _boolValue = [[[NSUserDefaults standardUserDefaults] valueForKey:@"boolValue"] boolValue]; // will be FALSE if the value is `nil` for the key