01.02.2014 Views

Objective-C Fundamentals

Objective-C Fundamentals

Objective-C Fundamentals

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Building the PocketTasks application<br />

245<br />

}<br />

action:@selector(addPerson)];<br />

self.navigationItem.rightBarButtonItem = addButton;<br />

[addButton release];<br />

- (void)addPerson {<br />

PersonDetailViewController *detailController =<br />

[[PersonDetailViewController alloc]<br />

initWithManagedObjectContext:managedObjectContext];<br />

UINavigationController *controller =<br />

[[UINavigationController alloc]<br />

initWithRootViewController:detailController];<br />

Create a<br />

PersonDetailViewController<br />

detailController.navigationItem.rightBarButtonItem =<br />

[[[UIBarButtonItem alloc]<br />

initWithBarButtonSystemItem:UIBarButtonSystemItemSave<br />

target:detailController<br />

action:@selector(saveAndDismiss)]<br />

autorelease];<br />

Add a Save<br />

button<br />

}<br />

[self presentModalViewController:controller animated:YES];<br />

[controller release];<br />

[detailController release];<br />

Present it<br />

modally<br />

- (void)tableView:(UITableView *)tableView<br />

commitEditingStyle:(UITableViewCellEditingStyle)editingStyle<br />

forRowAtIndexPath:(NSIndexPath *)indexPath {<br />

if (editingStyle == UITableViewCellEditingStyleDelete) {<br />

[managedObjectContext deleteObject:[resultsController<br />

objectAtIndexPath:indexPath]];<br />

}<br />

}<br />

NSError *error = nil;<br />

if (![managedObjectContext save:&error]) {<br />

NSLog(@"Unresolved error %@, %@", error, [error userInfo]);<br />

abort();<br />

}<br />

Delete the Core<br />

Data object<br />

- (void)controllerWillChangeContent:<br />

(NSFetchedResultsController *)controller {<br />

}<br />

[self.tableView beginUpdates];<br />

Set table view<br />

for changes<br />

- (void)controller:(NSFetchedResultsController *)controller<br />

didChangeObject:(id)anObject<br />

atIndexPath:(NSIndexPath *)indexPath<br />

forChangeType:(NSFetchedResultsChangeType)type<br />

newIndexPath:(NSIndexPath *)newIndexPath {<br />

UITableView *tableView = self.tableView;<br />

switch(type) {<br />

case NSFetchedResultsChangeInsert:<br />

[self.tableView<br />

Content changes from<br />

results controller

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!