CoreDataでCRUD
とりあえずコードだけ貼っとく。あとでまとめる。
- (void)applicationDidFinishLaunching:(UIApplication *)application { /* SELECT & UPDATE */ // create context NSManagedObjectContext *context = [self managedObjectContext]; // create request NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *personDescription = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:context]; [request setEntity: personDescription]; // entity description // fetch it!! NSError *error; NSArray *result = [context executeFetchRequest:request error:&error]; NSLog(@"%d", [result count]); for (Person *e in result) { NSLog(@">> name: %@, age: %@", e.name, e.age); e.age = [NSNumber numberWithInt:[result count]]; } /* INSERT */ Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:context]; person.name = @"thata"; person.age = [NSNumber numberWithInt:17]; [context save:&error]; /* DELETE */ // insertしてから... person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:context]; person.name = @"hakanai"; person.age = [NSNumber numberWithInt:0]; [context save:&error]; NSLog(@"インサートされたはず"); result = [context executeFetchRequest:request error:&error]; for (Person *e in result) { NSLog(@">> name: %@, age: %@", e.name, e.age); } // delete result = [context executeFetchRequest:request error:&error]; NSInteger lastIndex = [result count] - 1; Person *lastPerson = [result objectAtIndex:lastIndex]; NSLog(@"この人が消えます"); NSLog(@">> name: %@, age: %@", lastPerson.name, lastPerson.age); NSLog(@"今消した"); [context deleteObject: lastPerson]; [context save:&error]; // 消されているはず NSLog(@"消されているはず"); result = [context executeFetchRequest:request error:&error]; for (Person *e in result) { NSLog(@">> name: %@, age: %@", e.name, e.age); } // Override point for customization after app launch [window makeKeyAndVisible]; }