Store data in core data


- (NSManagedObjectContext *)managedObjectContext
{
NSManagedObjectContext *context = nil;
id delegate = [[UIApplication sharedApplication] delegate];
if ([delegate performSelector:@selector(managedObjectContext)])
{
context = [delegate managedObjectContext];
}
return context;
}
-(void) save
{
NSManagedObject *newDevice = [NSEntityDescription
insertNewObjectForEntityForName:@"tablename"
inManagedObjectContext:context];
[newDevice setValue:_ columnone forKey:@"columnone"];
[newDevice setValue:_ columntwo forKey:@"columntwo"];
[newDevice setValue:_ columnthree forKey:@"columnthree"];
// Save the object to persistent store
if (![context save:&error])
{
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Saved successfully." delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
[alert show];
[self performSelector:@selector(dismissAlert:) withObject:alert afterDelay:1.0f];
//break;
}
}

Creating and executing a fetch request:

NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"Employee" inManagedObjectContext:moc];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
// Set example predicate and sort orderings...
NSNumber *minimumSalary = ...;
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(lastName LIKE[c] 'Worsley') AND (salary > %@)", minimumSalary];
[request setPredicate:predicate];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES];
[request setSortDescriptors:@[sortDescriptor]];
NSError *error;
NSArray *array = [moc executeFetchRequest:request error:&error]; if (array == nil)
{
// Deal with error...
}

Retrieving Specific Objects:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity =[NSEntityDescription entityForName:@"Employee" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self == %@", targetObject];
[request setPredicate:predicate];
NSError *error;
NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];
if (array != nil) {
NSUInteger count = [array count]; // May be 0 if the object has been deleted.
//
}
else {
// Deal with error.
}

References:
1)https://developer.apple.com/library/iOS/referencelibrary/GettingStarted/RoadMapiOS/index.html
2) "Beginning iOS 5 Development" by Dave Mark,Jack Nutting and Jeff LaMarche.

iOS : Designing of the Data Model << Previous


Support us generously: contact@lessons2all.com

Our aim is to provide information to the knowledge seekers. 


comments powered by Disqus














Footer1