Skip to content

Instantly share code, notes, and snippets.

@hamin
Created August 17, 2012 09:22
Show Gist options
  • Save hamin/3377350 to your computer and use it in GitHub Desktop.
Save hamin/3377350 to your computer and use it in GitHub Desktop.
Create custom classes by custom classes inheriting from NSFNanoObject
#import "NSFNanoObject.h"
@interface Person : NSFNanoObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *location;
@end
#import "Person.h"
#import "NanoStore.h"
@implementation Person
@synthesize name;
@synthesize location;
- (id)initFromDictionaryRepresentation:(NSDictionary *)theDictionary
{
[self clearNulls:theDictionary];
self = [super initFromDictionaryRepresentation:theDictionary];
if (self) {
self.name = [theDictionary objectForKey:@"name"];
self.location = [theDictionary objectForKey:@"location"];
}
return self;
}
@end
#import "Person.h"
@interface SomeController ()
@end
@implementation SomeController
-(void)awakeFromNib
{
// ...
NSString *thePath = @"~/Desktop/peopleApp.database";
NSFNanoStore *nanoStore = [NSFNanoStore createAndOpenStoreWithType:NSFPersistentStoreType path:thePath error:nil];
// Obtain the engine
NSFNanoEngine *nanoStoreEngine = [nanoStore nanoStoreEngine];
// Set the synchronous mode setting
[nanoStoreEngine setSynchronousMode:SynchronousModeOff];
[nanoStoreEngine setEncodingType:NSFEncodingUTF16];
// Open the document store
[nanoStore openWithError:nil];
// This should initialize a newly created NanoObject for Person as the NanoObject.h suggest
// + (NSFNanoObject*)nanoObjectWithDictionary:(NSDictionary *)theDictionary;
// /** * Initializes a newly allocated NanoObject with the given dictionary.
Person *aPerson = [[Person alloc] initFromDictionaryRepresentation:personDict];
// ...
}
@end
@hamin
Copy link
Author

hamin commented Aug 28, 2012

@tciuro it works!!! Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment