To restore object on next launch you can alternatively try following:
Save objectID to NSUserDefaults:
[[NSUserDefaults standardUserDefaults] setObject:self.myPerson.objectID forKey:@"lastSelectedPerson"]; [[NSUserDefaults standardUserDefaults] synchronize];
On the next launch get value from NSUserDefaults:
NSNumber *lastSelectedPersonID = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastSelectedPerson"];
Query Core Data store to get object:
- (Person *)personWithID:(NSNumber *)personID { Person *person = nil; NSFetchRequest *request = [[NSFetchRequest alloc] init]; request.entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext]; request.predicate = [NSPredicate predicateWithFormat:@"objectID == %@", personID]; NSError *error = nil; NSArray *persons = [self.managedObjectContext executeFetchRequest:request error:&error]; person = [persons lastObject]; return person; }