Skip to content

Instantly share code, notes, and snippets.

@calebhicks
Created November 9, 2014 19:31
Show Gist options
  • Save calebhicks/781b90bf6ec18db1224a to your computer and use it in GitHub Desktop.
Save calebhicks/781b90bf6ec18db1224a to your computer and use it in GitHub Desktop.
Sample Settings Class
//
// Settings.m
// Sample
//
// Created by Caleb Hicks on 7/2/14.
// Copyright (c) 2014 Caleb Hicks. All rights reserved.
//
#import "Settings.h"
static NSString * const minutesKey = @"minutesKey";
static NSString * const roundMinutesKey = @"roundMinutesKey";
static NSString * const shortBreakMinutesKey = @"shortBreakMinutesKey";
static NSString * const longBreakMinutesKey = @"longBreakMinutesKey";
static NSString * const soundEffectsKey = @"soundEffectsKey";
@interface Settings()
@end
@implementation Settings
+ (Settings *)sharedInstance {
static Settings *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [Settings new];
});
return sharedInstance;
}
- (void)setDefaults{
if (![[NSUserDefaults standardUserDefaults] doubleForKey:roundMinutesKey]) {
self.roundMinutes = 25; // sets nsuserdefaults in setRoundMinutes
}else{
self.roundMinutes = [[NSUserDefaults standardUserDefaults] doubleForKey:roundMinutesKey];
}
if (![[NSUserDefaults standardUserDefaults] doubleForKey:shortBreakMinutesKey]) {
self.shortBreakMinutes = 5; // sets nsuserdefaults in setRoundMinutes
}else{
self.shortBreakMinutes = [[NSUserDefaults standardUserDefaults] doubleForKey:shortBreakMinutesKey];
}
if (![[NSUserDefaults standardUserDefaults] doubleForKey:longBreakMinutesKey]) {
self.longBreakMinutes = 15; // sets nsuserdefaults in setRoundMinutes
}else{
self.longBreakMinutes = [[NSUserDefaults standardUserDefaults] doubleForKey:longBreakMinutesKey];
}
if (![[NSUserDefaults standardUserDefaults] boolForKey:soundEffectsKey]) {
self.soundEffects = NO; // sets nsuserdefaults in setSoundEffects
}else{
self.soundEffects = [[NSUserDefaults standardUserDefaults] boolForKey:soundEffectsKey];
}
}
- (void)setRoundMinutes:(NSInteger)roundMinutes{
_roundMinutes = roundMinutes;
[[NSUserDefaults standardUserDefaults] setDouble:roundMinutes forKey:roundMinutesKey];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)setShortBreakMinutes:(NSInteger)shortBreakMinutes{
_shortBreakMinutes = shortBreakMinutes;
[[NSUserDefaults standardUserDefaults] setDouble:shortBreakMinutes forKey:shortBreakMinutesKey];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)setLongBreakMinutes:(NSInteger)longBreakMinutes{
_longBreakMinutes = longBreakMinutes;
[[NSUserDefaults standardUserDefaults] setDouble:longBreakMinutes forKey:longBreakMinutesKey];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)setSoundEffects:(BOOL)soundEffects{
_soundEffects = soundEffects;
[[NSUserDefaults standardUserDefaults] setBool:soundEffects forKey:soundEffectsKey];
[[NSUserDefaults standardUserDefaults] synchronize];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment