15
Persistencia de datos con Parse [email protected] @aalbagarcia

Persistencia de datos con Parse

Embed Size (px)

DESCRIPTION

Presentación NSCoder Madrid Diciembre 2012 Persistencia de datos con Parse.

Citation preview

Page 1: Persistencia de datos con Parse

Persistencia de datos con Parse

[email protected]@aalbagarcia

Page 2: Persistencia de datos con Parse

Creando y guardando objetos

Doc

#pragma mark PTGroupDataSourceProtocol-(void) addGroup:(NSString *)group{ PFObject *newGroup = [PFObject objectWithClassName:@"Group"]; [newGroup setObject:group forKey:@"name"]; [newGroup saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { if(succeeded) { dispatch_async(dispatch_get_main_queue(), ^{ [self getGroupsAndReloadDataInBackground]; }); } }]; NSLog(@"Saving group %@", group);}

Page 4: Persistencia de datos con Parse

Borrando objetos

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{ if (editingStyle == UITableViewCellEditingStyleDelete) { PFObject *group = [groups objectAtIndex:indexPath.row]; [group deleteInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { if(succeeded & !error) { NSMutableArray *newGroups = [groups mutableCopy]; [newGroups removeObjectAtIndex:indexPath.row]; groups = [newGroups copy]; dispatch_async(dispatch_get_main_queue(), ^{ [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; }); } }]; }}

Page 6: Persistencia de datos con Parse

Viendo los objetos

Page 7: Persistencia de datos con Parse
Page 8: Persistencia de datos con Parse

Relaciones- (void) addPerson:(NSDictionary *)data{ PFObject *group = [data objectForKey:@"group"]; PFObject *person = [PFObject objectWithClassName:@"Person"]; [person setObject:[data objectForKey:@"firstName"] forKey:@"firstName"]; [person setObject:[data objectForKey:@"lastName"] forKey:@"lastName"]; [person setObject:[data objectForKey:@"email"] forKey:@"email"]; [person setObject:[data objectForKey:@"twitter"] forKey:@"twitter"]; PFRelation *memberOf = [person relationforKey:@"memberOf"]; [memberOf addObject:group]; [person saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { if(succeeded) { dispatch_async(dispatch_get_main_queue(), ^{ [self loadDataInBackground]; }); //We cannot create the inverse relation until the object is saved PFRelation *relation = [group relationforKey:@"members"]; [relation addObject:person]; [group saveInBackground]; } else { NSLog(@"Person could not be saved."); } }];}

DocAPI

Page 9: Persistencia de datos con Parse
Page 11: Persistencia de datos con Parse

La demo es muy artesanal

¿Qué herramientas nos da parse?

Page 12: Persistencia de datos con Parse

PFLoginViewController

Doc

Page 13: Persistencia de datos con Parse

PGSignUpViewController

Doc

Page 14: Persistencia de datos con Parse

PFQueryTableViewController

Doc

Page 15: Persistencia de datos con Parse

PFImage

PFImageView *imageView = [[PFImageView alloc] init];imageView.image = [UIImage imageNamed:@"..."]; // placeholder imageimageView.file = (PFFile *)[someObject objectForKey:@"picture"]; // remote image     [imageView loadInBackground];

Doc