如何在我的应用程序被杀死后存储一个布尔值

时间:2014-07-08 19:44:31

标签: ios objective-c

+ (void)setUISoundsEnabled:(BOOL)UISoundsEnabled
{
    __UISoundsEnabled = UISoundsEnabled;

}

该应用程序有一个首选项页面,可让我打开和关闭不同的警报声音。当我关闭警报声时,此UISoundsEnabled bool设置为:YES,反之亦然。

然而,当应用程序崩溃,或者我杀了它(不只是关闭它);我相信bool没有被存储,因为尽管开关说的是(不播放声音),它仍然会播放声音。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

NSUserDefaults实例中设置布尔值:

+ (void)setUISoundsEnabled:(BOOL)UISoundsEnabled
{
    __UISoundsEnabled = UISoundsEnabled;
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults setBool:UISoundsEnabled forKey:@"soundsEnabled"];
}

然后在加载应用程序并配置首选项视图并对其执行操作时检查声音是否已启用:

[[NSUserDeafults standardUserDefaults] boolForKey:@"soundsEnabled"];

这样,你的价值会因崩溃和关闭而持续存在。

答案 1 :(得分:0)

这就是我想出来的!

在视图控制器中,我有一个监听UISoundsEnabled

更改的通知
- (void)preferencesDidChange:(NSNotification *)note
{
NSMutableArray *changedPreferences = note.object;
if ([changedPreferences containsObject:@"localPlayUISounds"]) {
[FHSSound setUISoundsEnabled:PREFS.localPlayUISounds];
}

在viewDidLoad中:

- (void)viewDidLoad
{

[super viewDidLoad];

[self setSoundPreferences];     }

最后在启动时设置首选项

#pragma mark (launch)
- (void)setSoundPreferences
 {
[FHSSound setUISoundsEnabled:PREFS.localPlayUISounds];
[FHSSound setAlertSoundsEnabled:PREFS.localPlayAlertSounds];
}