Skip to content

Instantly share code, notes, and snippets.

@angelolloqui
Last active January 4, 2016 19:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save angelolloqui/8665547 to your computer and use it in GitHub Desktop.
Save angelolloqui/8665547 to your computer and use it in GitHub Desktop.
Simple example of using a Transformable object as part of a CoreData model. Use it only for very simple objects, with no relations.
@interface MOFAddress : NSObject <NSCoding>
@property (nonatomic, strong) NSString *city;
@property (nonatomic, strong) NSString *number;
@property (nonatomic, strong) NSString *street;
@property (nonatomic, strong) NSString *postCode;
@property (nonatomic, strong) NSString *location;
@end
@implementation MOFAddress
- (id)initWithCoder:(NSCoder *)decoder {
self = [super init];
if (self) {
self.city = [decoder decodeObjectForKey:@"city"];
self.street = [decoder decodeObjectForKey:@"street"];
self.number = [decoder decodeObjectForKey:@"number"];
self.postCode = [decoder decodeObjectForKey:@"postCode"];
self.location = [decoder decodeObjectForKey:@"location"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.city forKey:@"city"];
[encoder encodeObject:self.street forKey:@"street"];
[encoder encodeObject:self.number forKey:@"number"];
[encoder encodeObject:self.postCode forKey:@"postCode"];
[encoder encodeObject:self.location forKey:@"location"];
}
@end
//Define the address as a Transformable in your Model class that contains the address
T addressData Transformable
//Create a category if you want type checks
@property (nonatomic, strong) MOFAddress *address;
- (void)setAddress:(MOFAddress *)address {
self.addressData = address;
}
- (MOFAddress *)address {
return self.addressData;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment