Files
MapLibreParticleLab/ios/MBXSettings.mm
Justin R. Miller 257ccd16bb clean up settings mechanism (fixes #9 & #62)
* init, load, persist, sync, clear
 * clean up frequent disk syncs which impacted iOS performance
 * insert disk sync into various iOS/OS X lifecycle events
 * implement clear
 * implement save on iOS
 * cleaner dictionary syntax
2014-02-13 12:21:35 -08:00

52 lines
1.7 KiB
Plaintext

//
// MBXSettings.cpp
// llmr
//
// Created by Justin R. Miller on 1/27/14.
//
//
#import "MBXSettings.h"
#import <Foundation/Foundation.h>
using namespace llmr;
Settings_iOS::Settings_iOS()
{
[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"longitude" : @(longitude),
@"latitude" : @(latitude),
@"scale" : @(scale),
@"angle" : @(angle),
@"debug" : @(debug) }];
}
void Settings_iOS::load()
{
NSDictionary *settings = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
longitude = [settings[@"longitude"] doubleValue];
latitude = [settings[@"latitude"] doubleValue];
scale = [settings[@"scale"] doubleValue];
angle = [settings[@"angle"] doubleValue];
debug = [settings[@"debug"] boolValue];
}
void Settings_iOS::persist()
{
[[NSUserDefaults standardUserDefaults] setValuesForKeysWithDictionary:@{ @"longitude" : @(longitude),
@"latitude" : @(latitude),
@"scale" : @(scale),
@"angle" : @(angle),
@"debug" : @(debug) }];
}
void Settings_iOS::sync()
{
[[NSUserDefaults standardUserDefaults] synchronize];
}
void Settings_iOS::clear()
{
[NSUserDefaults resetStandardUserDefaults];
}