Мне не совсем ясно, нужно ли вам сохранять имя объекта или определенный управляемый объект, но в обоих случаях решение одно и то же: вам нужно сохранить ссылку в NSUserDefaults.
Чтобы сохранить сущность в пользовательских настройках по умолчанию, вы просто сохраните имя сущности в виде строки.Так что-то вроде:
[[NSUserDefaults standardUserDefaults] setValue:entityNameString forKey:@"currentlySelectedEntity"];
... и для его извлечения:
NSString *currentEntity=[[[NSUserDefaults standardUserDefaults] valueForKey:@"currentlySelectedEntity"];
Если вам нужно сохранить ссылку на определенный управляемый объект, вам нужно сохранить управляемый объектИдентификатор сохраненного объекта.Экономия очень важна.До сохранения контекста, в котором был создан объект, идентификатор объекта имеет только временное значение, которое изменяется при сохранении.Любая ссылка на объект будет потеряна, если вы используете временное значение.
Чтобы сохранить идентификатор объекта:
NSManagedObject *mo=[NSEntityDescription insertNewObjectForEntityForName:@"TestEntity" inManagedObjectContext:self.managedObjectContext];
//... save the context
NSManagedObjectID *moID=[mo objectID];
NSURL *moIDURI=[moID URIRepresentation];
[[NSUserDefaults standardUserDefaults] setValue:moIDURI forKey:@"currentlySelectedTestObject"];
... чтобы получить его:
NSURL *uri=[[NSUserDefaults standardUserDefaults] valueForKey:@"currentlySelectedTestObject"];
NSManagedObjectID *moID=[self.persistentStoreCoordinator managedObjectIDForURIRepresentation:uri];
NSManagedObject *mo=[self.managedObjectContext objectRegisteredForID:moID];
(Приведенный выше код не скомпилирован и может содержать опечатки, так что непросто скопируйте и вставьте его.)