/MapView/Map/NSUserDefaults+RouteMe.m
Objective C | 70 lines | 35 code | 8 blank | 27 comment | 0 complexity | d97b49bdb25dc2736176c7905a1861b6 MD5 | raw file
1// 2// NSUserDefaults+RouteMe.m 3// 4// Copyright (c) 2008-2011, Route-Me Contributors 5// All rights reserved. 6// 7// Redistribution and use in source and binary forms, with or without 8// modification, are permitted provided that the following conditions are met: 9// 10// * Redistributions of source code must retain the above copyright notice, this 11// list of conditions and the following disclaimer. 12// * Redistributions in binary form must reproduce the above copyright notice, 13// this list of conditions and the following disclaimer in the documentation 14// and/or other materials provided with the distribution. 15// 16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 20// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26// POSSIBILITY OF SUCH DAMAGE. 27// 28 29#import "NSUserDefaults+RouteMe.h" 30 31#define kEasting @"easting" 32#define kNorthing @"northing" 33#define kWidth @"width" 34#define kHeight @"height" 35 36@implementation NSUserDefaults (RouteMe) 37 38- (RMProjectedPoint)projectedPointForKey:(NSString *)key { 39 NSDictionary *projectedPointDictionary = [self dictionaryForKey:key]; 40 RMProjectedPoint projectedPoint = RMMakeProjectedPoint([[projectedPointDictionary objectForKey:kEasting] doubleValue], 41 [[projectedPointDictionary objectForKey:kNorthing] doubleValue]); 42 return projectedPoint; 43} 44 45- (void)setProjectedPoint:(RMProjectedPoint)projectedPoint forKey:(NSString *)key { 46 NSDictionary *projectedPointDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 47 [NSNumber numberWithDouble:projectedPoint.easting], kEasting, 48 [NSNumber numberWithDouble:projectedPoint.northing], kNorthing, nil]; 49 [self setObject:projectedPointDictionary forKey:key]; 50} 51 52- (RMProjectedRect)projectedRectForKey:(NSString *)key { 53 NSDictionary *projectedRectDictionary = [self dictionaryForKey:key]; 54 RMProjectedRect projectedRect = RMMakeProjectedRect([[projectedRectDictionary objectForKey:kEasting] doubleValue], 55 [[projectedRectDictionary objectForKey:kNorthing] doubleValue], 56 [[projectedRectDictionary objectForKey:kWidth] doubleValue], 57 [[projectedRectDictionary objectForKey:kHeight] doubleValue]); 58 return projectedRect; 59} 60 61- (void)setProjectedRect:(RMProjectedRect)projectedRect forKey:(NSString *)key { 62 NSDictionary *projectedRectDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 63 [NSNumber numberWithDouble:projectedRect.origin.easting], kEasting, 64 [NSNumber numberWithDouble:projectedRect.origin.northing], kNorthing, 65 [NSNumber numberWithDouble:projectedRect.size.width], kWidth, 66 [NSNumber numberWithDouble:projectedRect.size.height], kHeight, nil]; 67 [self setObject:projectedRectDictionary forKey:key]; 68} 69 70@end