Skip to content

Instantly share code, notes, and snippets.

@benjaminhallock
Created March 22, 2016 16:10
Show Gist options
  • Save benjaminhallock/4afdde555f139593edd9 to your computer and use it in GitHub Desktop.
Save benjaminhallock/4afdde555f139593edd9 to your computer and use it in GitHub Desktop.
Storing Custom Objects in NSUserDefaults
// View did load
NSData *data = [[NSUserDefaults standardUserDefaults] dataForKey:@"array"];
arrayOfFaceObjects = [NSMutableArray arrayWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:data]];
if (!arrayOfFaceObjects.count)
{
arrayOfImages = [NSMutableArray arrayWithObjects:@"1.png", @"2.jpg", @"3.jpg", @"4.jpg", @"5.jpg", @"6.jpg", @"8.jpg", @"9.jpg", @"10.jpg", @"11.jpg", @"12.jpg", @"13.jpg", @"14.jpg", @"15.jpg", nil];
//Converts arrayOfImages to arrayOfFaceObjects
for (NSString *imageString in arrayOfImages)
{
[self detectFace:imageString];
}
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arrayOfFaceObjects];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"array"];
}
// Custom object methods m file
- (void)encodeWithCoder:(NSCoder *)encoder {
//Encode properties, other class variables, etc
[encoder encodeCGRect:self.frameOfHead forKey:@"frameOfHead"];
[encoder encodeFloat:self.faceAngle forKey:@"faceAngle"];
[encoder encodeObject:self.filePath forKey:@"filePath"];
}
- (id)initWithCoder:(NSCoder *)decoder {
if((self = [super init])) {
//decode properties, other class vars
self.frameOfHead = [decoder decodeCGRectForKey:@"frameOfHead"];
self.faceAngle = [decoder decodeFloatForKey:@"faceAngle"];
self.filePath = [decoder decodeObjectForKey:@"filePath"];
}
return self;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment