Я довольно новичок в iOS, и в настоящее время я разрабатываю страницу «Создать новое событие» для своего приложения.iOS шаблоны для создания объекта перед сохранением?
Некоторая информация:
- пользователь может нажать на создать новое событие, а затем нажмите кнопку назад, чтобы отменить создание этого нового события. (Я использую UINavigationController)
- 1 видео может быть прикреплено к определенному событию.
- Пользователь может создать новое событие, записать видео, затем решает не продолжать его сохранение (путем нажатия)
- Каждое событие должно генерировать uuid. Этот uuid необходим для предотвращения столкновения объектов между разными клиентами, создающих события и отправки их на сервер.
- Каждый захваченный видео называется uuid .mov для хранения в файловой системе до того, как событие будет загружено на сервер.
Исходя из рельсов фона, я привык делать следующее:
- Когда пользователь нажимает на «Создать новую страницу событий», событие создается, но не сохраняется в БД.
- Затем пользователь вводит атрибуты страницы и решает, хочет ли он совершить
- При фиксации места события событие присваивается предоставленной информацией. Затем событие сохраняется.
Однако я не считаю, что у Core Data есть API, который позволяет разработчику создавать объект без его сохранения. В настоящее время я делаю что-то вроде этого:
- Когда пользователь посещает «создать новую страницу событий», пустой пул создается и хранится в db. Ссылка на экземпляр события передается контроллеру для создания новой страницы события.
- Когда пользователь вводит всю информацию и снимает видео (uuid создается при awakeFromInsert и устанавливается в течение 1), сохранение просто устанавливает объект с требуемым атрибутом.
- Если пользователь решает отменить создание события, я проверяю, нажата ли отмена. если это так, и событие, и видеофайл удаляются.
Код для проверки нажатия Отмена.
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if (![[self.navigationController viewControllers] containsObject:self]) {
Это немного сложно, если быть честным. У вас, ребята, есть лучшее предложение?
Чтобы добавить к этому, если вы хотите создать объект, который никогда не сохраняется в контексте основного объекта, вы можете создать «блокнот» или новый контекст NSManagedObject, в который вы можете внести изменения, а затем отбросить это или вы можете скопировать объекты в свой основной NSManagedObjectContext – LightningStryk