Skip to content

Instantly share code, notes, and snippets.

@aspitz
Created June 18, 2013 19:46
Show Gist options
  • Save aspitz/5808638 to your computer and use it in GitHub Desktop.
Save aspitz/5808638 to your computer and use it in GitHub Desktop.
Category code to store and retrieve CGPoint and CGRect
#import "NSUserDefaults+Utilities.h"
@implementation NSUserDefaults (Utilities)
- (CGPoint)CGPointForKey:(NSString *)key
{
CGPoint pt = CGPointZero;
NSArray *ptArray = [self objectForKey:key];
if (ptArray != nil)
{
pt = CGPointMake([ptArray[0] floatValue], [ptArray[1] floatValue]);
}
else {
pt = CGPointMake(MAXFLOAT, MAXFLOAT);
}
return pt;
}
- (CGRect)CGRectForKey:(NSString *)key
{
CGRect rect = CGRectNull;
NSArray *ptArray = [self objectForKey:key];
if (ptArray != nil)
{
rect = CGRectMake([ptArray[0] floatValue], [ptArray[1] floatValue], [ptArray[2] floatValue], [ptArray[3] floatValue]);
}
return rect;
}
- (void)setCGPoint:(CGPoint)pt forKey:(NSString *)key
{
NSArray *ptArray = @[@(pt.x), @(pt.y)];
[self setObject:ptArray forKey:key];
}
- (void)setCGRect:(CGRect)rect forKey:(NSString *)key
{
NSArray *ptArray = @[@(rect.origin.x), @(rect.origin.y), @(rect.size.width), @(rect.size.height)];
[self setObject:ptArray forKey:key];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment